Prova att avnända den inbyggda funktionen för att skapa thumbnails, hade samma problem som du, gav upp och använde den färdiga med dvs. modifieringar.
Jag försöker skala om bilder i storlek (JPG). Bilderna är ganska stora, ca 1600px i bredd och ska bli 600px. Dessutom är de "studio"-fotograferade så kvalitén är väldigt hög.
Att komprimera bilderna med JPG och att förminska dem är i sig inget problem. Problemet är att .NET verkar ha problem med att förminska väldigt detalj-rika bilder.
Exempel kan vara en detaljerad motorcykel-motor.
När jag i Photoshop förminskar bilden gör den små-detaljer "suddiga" vilket ger bilden ett mjukare intryck. ".NET" däremot försöker behålla även små-detaljer vilket resulterar i "kluddiga" skarpa kontraster.
"Vanliga" bilder funkar annars perfekt, tex. bilder på natur, människor osv.
Jag har provat med alla möjliga inställningar...
Dim image As System.Drawing.Image = image.FromFile(szFileName)
Dim bmp As New Bitmap(iWidth, iHeight)
Dim gr As Graphics = Graphics.FromImage(bmp)
gr.DrawImage(image, 0, 0, iWidth, iHeight)
gr.Save()
gr.InterpolationMode = Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
gr.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality
gr.CompositingQuality = Drawing.Drawing2D.CompositingQuality.HighQuality
gr.CompositingMode = Drawing.Drawing2D.CompositingMode.SourceCopy
gr.save()
Dim eps As EncoderParameters = New EncoderParameters(2)
eps.Param(0) = New EncoderParameter(Encoder.Quality, lCompression)
eps.Param(1) = New EncoderParameter(New Encoder(Encoder.Compression.Guid), EncoderValue.CompressionLZW)
Dim ici As ImageCodecInfo = GetEncoderInfo("image/jpeg")
bmp.Save(szNewFileName, ici, eps)
image.Dispose()
bmp.Dispose()
Bilden jag testar med är: http://server.webwerkstaden.se/Cykel_01.jpg) OBS! Ladda hem bilden och öppna lokalt för browsern skalar annars ner bilden vilket gör den suddig)
Resultatet jag får av denna bild är:
http://server.webwerkstaden.se/NYCykel_01.jpg
Vilket är hyffsat...men inte bra nog....
Några tips?