---
title: "Skapa bitmap från graphics"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/147870-skapa-bitmap-från-graphics"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "bwcMikke"
published: "2006-06-09T07:33:53.000Z"
updated: "2006-06-09T19:17:10.000Z"
replies: 5
views: 461
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/147870-skapa-bitmap-från-graphics"
---

# Skapa bitmap från graphics

## #1 — bwcMikke, 2006-06-09T07:33Z

Jag försöker hitta det bästa sättet att minska storlek på en bild utan att tappa bildkvalitet. Har via diverse efterforskningar kommit fram till följande kodavsnitt: 

```
gr.DrawImage(image, 0, 0, picWidth, picHeight);
gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
gr.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
gr.Save();
```

 

Problemet nu är att funktionen skulle behöva returnera ett bitmap-objekt.
Jag hittar ingen method för att spara graphics i något annat format (ej heller Image eller Stream). 
Är jag fel ute eller kan någon hjälpa till?

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

## #2 — emission, 2006-06-09T11:48Z

Du kan inte returnera en bitmap, men du kan instantiera Graphics från en bitmap, vilket gör att bitmapen uppdateras.

```
gr = Graphics.FromImage(bitmap);
```

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

## #3 — bwcMikke, 2006-06-09T13:07Z

OK.
Om jag förstår det rätt så kan jag komplettera koden så den blir något i stil med:

```
System.Drawing.Image image = System.Drawing.Image.FromStream(stmInput);
					
Bitmap bmp = new Bitmap(picWidth, picHeight);
bmp.SetResolution(image.HorizontalResolution, image.VerticalResolution);

Graphics gr = Graphics.FromImage(bmp);
gr.DrawImage(image, 0, 0, picWidth, picHeight);
gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
gr.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;

gr.Save();

return bmp;

image.Dispose();
bmp.Dispose();
```

 

och då skall bilden som finns i strInput få den nya storleken med absolut minsta kvalitetsförstöring?

Om kunden ändå inte är nöjd - vad gör man då?

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

## #4 — emission, 2006-06-09T16:32Z

Så här bör det nog se ut.

```
System.Drawing.Image image = System.Drawing.Image.FromStream(stmInput);
					
Bitmap bmp = new Bitmap(picWidth, picHeight);
bmp.SetResolution(image.HorizontalResolution, image.VerticalResolution);

Graphics gr = Graphics.FromImage(bmp);
gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubi  c;
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
gr.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
gr.DrawImage(image, 0, 0, picWidth, picHeight);

gr.Save();

return bmp;

image.Dispose();
bmp.Dispose();
```

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

## #5 — bwcMikke, 2006-06-09T17:04Z

Aha, jag förstår (tror jag)

Jag tycker resultatet verkar bättre - återstår bara att se om kunden tycker det också.

Tack så mycket !

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

## #6 — emission, 2006-06-09T19:17Z

> **bwcMikke skrev:**
>
> Aha, jag förstår (tror jag)
> 
> Jag tycker resultatet verkar bättre - återstår bara att se om kunden tycker det också.
> 
> Tack så mycket !

Kanon. Anledningen till att det blir bättre är, som du kanske förstår, att de inställningar som görs på Graphic-objektet appliceras vid DrawImage. Efter det är det för sent.

Btw, var det inte mitt svar som löste problemet? ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/147870-skapa-bitmap-från-graphics
