Avatar billede websam Nybegynder
27. april 2006 - 11:15 Der er 11 kommentarer og
2 løsninger

Resize der driller i perioder ?

Hejsa,

Jeg har noget kode der laver resize på billeder jeg oploader og for det meste af tiden virker det også efter hensigten. Men i perioder får jeg denne fejl :

    A generic error occurred in GDI+.

Dette skyldes IKKE at der ikke er rettigheder på mappen, da det jo kun er ind i mellem at det ikke virker. Så er tilbøjelig til at tro at der er noget i min kode der ikke er helt som det skal være, så her kommer det :

VB
Dim bmpFile As New Bitmap(strFileStream)
If bmpFile.Width > bmpFile.Height Then
    intWidth = intWidth
    intHeight = bmpFile.Height / (bmpFile.Width / intWidth)
Else
    intHeight = intHeight
    intWidth = bmpFile.Width / (bmpFile.Height / intHeight)
End If

Dim bmpNewBitmap As New Bitmap(intWidth, intHeight)
Dim bmpGraphics As Graphics = Graphics.FromImage(bmpNewBitmap)

bmpGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic

Dim compressionRectangle As New Rectangle(0, 0, intWidth, intHeight)
bmpGraphics.DrawImage(bmpFile, compressionRectangle)
bmpFile.Dispose()
FileToSave = FilePath & Mid(strFile.FileName, InStrRev(strFile.FileName, "\") + 1)
bmpNewBitmap.Save(Current.Server.MapPath(FileToSave), strFileFormat)
bmpNewBitmap.Dispose()

Og til dem der vil have det i C# (oversat med et værktøj til dette) :

C#
Bitmap bmpFile = new Bitmap(strFileStream);
if (bmpFile.Width > bmpFile.Height) {
intWidth = intWidth;
intHeight = bmpFile.Height / (bmpFile.Width / intWidth);
} else {
intHeight = intHeight;
intWidth = bmpFile.Width / (bmpFile.Height / intHeight);
}
Bitmap bmpNewBitmap = new Bitmap(intWidth, intHeight);
Graphics bmpGraphics = Graphics.FromImage(bmpNewBitmap);
bmpGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
Rectangle compressionRectangle = new Rectangle(0, 0, intWidth, intHeight);
bmpGraphics.DrawImage(bmpFile, compressionRectangle);
bmpFile.Dispose();
FileToSave = FilePath + Mid(strFile.FileName, InStrRev(strFile.FileName, "\\") + 1);
bmpNewBitmap.Save(Current.Server.MapPath(FileToSave), strFileFormat);
bmpNewBitmap.Dispose();

Jeg håber der er nogen der kan komme med lidt hjælp til dette ?

/Websam
Avatar billede dr_chaos Nybegynder
28. april 2006 - 08:04 #1
prøv at sætte en try catch rundt om det hele og gemme evt exceptions.
Avatar billede websam Nybegynder
28. april 2006 - 12:08 #2
Det kan jeg godt prøve, men det vil vel ikke hjælpe på at jeg ikke får oploadet/resize't mit billede ?

/Websam
Avatar billede dr_chaos Nybegynder
28. april 2006 - 12:33 #3
nej men måske får du en exception ud som du kan bruge til at finde ud af hvorfor fejlen kommer.
Avatar billede websam Nybegynder
28. april 2006 - 12:54 #4
Ok jeg prøver det lige af senere og vender så tilbage.

Skal det så være :

Try
    min kode
Catch exeption As ex
    ex.message
End try
Avatar billede dr_chaos Nybegynder
28. april 2006 - 12:58 #5
ja gem exception i en text fil
Avatar billede websam Nybegynder
28. april 2006 - 13:08 #6
Det prøver jeg lige og så vender jeg tilbage.
Avatar billede websam Nybegynder
28. april 2006 - 13:27 #7
Det eneste jeg får ud er den samme fejl :

    A generic error occurred in GDI+.

Skal jeg bruge noget andet i stedet for ex.message ?
Avatar billede dr_chaos Nybegynder
28. april 2006 - 13:34 #8
prøv bare med ex
Avatar billede websam Nybegynder
28. april 2006 - 13:52 #9
Så får jeg at vide hvor det går galt, men med samme fejlbesked.

    A generic error occurred in GDI+.

I denne linie :

    bmpNewBitmap.Save(Current.Server.MapPath(FileToSave), strFileFormat)

Hjælper det på det ?
Avatar billede dr_chaos Nybegynder
29. april 2006 - 09:10 #10
prøv lige at fjerne dine dispose.
Det lader til at hvis man bruger gdi til at konstruerer et billede skal dette være åbent
Indtil du er færdig med at bruge billedet.
kig evt her hvordan man bør gemme et billede med gdi+
http://support.microsoft.com/?id=814675
Avatar billede websam Nybegynder
09. august 2006 - 12:14 #11
Jeg tror vist det er lukketid på denne, det lykkedes mig ikke at løse problemet, men du skal da have nogle point for din indsats.

/Websam
Avatar billede dr_chaos Nybegynder
09. august 2006 - 16:46 #12
ok :)
Avatar billede websam Nybegynder
09. august 2006 - 17:14 #13
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester