---
title: "GDI+, problem med skalning av bilder"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/80892-gdi-problem-med-skalning-av-bilder"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "fredrik"
published: "2003-06-30T09:30:17.000Z"
updated: "2003-07-03T06:19:05.000Z"
replies: 2
views: 1258
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/80892-gdi-problem-med-skalning-av-bilder"
---

# GDI+, problem med skalning av bilder

## #1 — fredrik, 2003-06-30T09:30Z

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?

Permalänk: https://www.webforum.nu/p/80892

## #2 — erka, 2003-06-30T09:52Z

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.

Permalänk: https://www.webforum.nu/p/1098333

## #3 — fredrik, 2003-07-03T06:19Z

Tack för tipset, körde med det först...

har dock löst problemet nu. I min första kod hade jag ju kört:
gr.InterpolationMode = Drawing.Drawing2D.InterpolationMode.HighQualityBicubic

efter det att jag gjorde "DrawImage". 
Jag var helt enkelt tvungen att göra det innan. Ganska logiskt egentligen...

Permalänk: https://www.webforum.nu/p/1100132

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/80892-gdi-problem-med-skalning-av-bilder
