Ik ben bezig met een applicatie die images kan resizen.
Het resizen gebeurt dmv de volgende code
Deze code staat in de klasse resize.cs.
Vanuit het hoofdformulier word deze functie aangeroepen dmv deze code
Zoals je ziet word de image geresized , dat gaat allemaal goed.
Alleen als hij hem wilt saven , dan begint de ellende.
De ene keer saved hij wel de image die geresized is , en de andere keer niet.
dit is gewoon willekeurig , dus er zit geen volgorde in.
Ik zat er dus aan te denken , dat voor het saven misschien niet alle resources goed worden gedisposed omdat dat misschien tijd in beslag neemt.
Dus heb ik er een Thread.sleep ingezet zoals je kunt zien.
Maar ook dit is allemaal zonder succes.
Er word gewoon weer willekeurig een exception gevangen , en de andere keer word er gewoon weer netjes gesaved.
Ik heb ook een screenie gemaakt van de gevangen exception.
[img=http://img143.imageshack.us/img143/7575/untitledwv6.th.jpg]
Het rare vind ik , dat ik deze error dus random krijg , en niet steeds iedere keer(of nog liever , iedere keer niet
)
Ik denk zelf dat het te maken heeft dus met het disposen van de resources , dat dat niet goed gaat, maar daarvoor had ik juist weer die thread.sleep ingebouwd.
Het heeft mij iig wel op een vreemd spor gezet
Het resizen gebeurt dmv de volgende code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| public void resizeImagePercentage(string locatie,double percentage)
{
Bitmap bmp = new Bitmap(locatie);
int width = Convert.ToInt32(bmp.Width * percentage);
int heigth = Convert.ToInt32(bmp.Height * percentage);
Bitmap resizedbmp = new Bitmap(bmp, new Size(width, heigth));
bmp.Dispose();
Thread.Sleep(3500);
resizedbmp.Save(locatie);
resizedbmp.Dispose();
} |
Deze code staat in de klasse resize.cs.
Vanuit het hoofdformulier word deze functie aangeroepen dmv deze code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| if (rdbtnResizeWH.Checked == true)
{//function for resizing the image on the user given sizes
try
{ //
resize.resizeImagePercentage(txtModImage.Text, Convert.ToInt32(txtResizeHeigth.Text), Convert.ToInt32(txtResizeWidth.Text));
//show a message to the user when the image is successfully converted
MessageBox.Show("De afbeelding is succesvol geresized");
//show the new image into the previewscreen , with new width,heigth and size
picboxMod.Image = print.makeThumb(txtModImage.Text);
}
catch(Exception er)
{//when the image fails to resize , provide the complete exception message to the user
string error = er.ToString();
MessageBox.Show(error);
} |
Zoals je ziet word de image geresized , dat gaat allemaal goed.
Alleen als hij hem wilt saven , dan begint de ellende.
De ene keer saved hij wel de image die geresized is , en de andere keer niet.
dit is gewoon willekeurig , dus er zit geen volgorde in.
Ik zat er dus aan te denken , dat voor het saven misschien niet alle resources goed worden gedisposed omdat dat misschien tijd in beslag neemt.
Dus heb ik er een Thread.sleep ingezet zoals je kunt zien.
Maar ook dit is allemaal zonder succes.
Er word gewoon weer willekeurig een exception gevangen , en de andere keer word er gewoon weer netjes gesaved.
Ik heb ook een screenie gemaakt van de gevangen exception.
[img=http://img143.imageshack.us/img143/7575/untitledwv6.th.jpg]
Het rare vind ik , dat ik deze error dus random krijg , en niet steeds iedere keer(of nog liever , iedere keer niet
Ik denk zelf dat het te maken heeft dus met het disposen van de resources , dat dat niet goed gaat, maar daarvoor had ik juist weer die thread.sleep ingebouwd.
Het heeft mij iig wel op een vreemd spor gezet
www.degroot-it.nl