---
title: "Thumbnails"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/108932-thumbnails"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "jazzil"
published: "2004-08-11T03:42:11.000Z"
updated: "2005-05-26T15:56:00.000Z"
replies: 9
views: 556
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/108932-thumbnails"
---

# Thumbnails

## #1 — jazzil, 2004-08-11T03:42Z

Jag har gjort ett litet galleri.
Och nu vill jag skapa thumbnail 

Funktionen ska kommas åt igenom.
thumb.aspx?name=bild.jpg

Jag har sökt på detta forum och på google utan vidare reslutat. Jag har fått en som funkar men kvaliten var as dålig och den var skriven i vb och jag använder c#
Finns det något sätt att clippa rektangulära bilder?

Så att skriptet först gör bilden fyrkantig och senda förminska ner till 100x100 px?

Tacksamm för svar !!

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

## #2 — fredrik, 2004-08-11T06:16Z

Ta en titt på följande:
<http://www.webforum.nu/showthread.php?s=&forumid=29&threadid=79164&highlight=image>

(glöm dock inte att ändra "ordning" på koden enligt sista inlägget, så att "drawImage" och "save" kommer EFTER inställningarna)

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

## #3 — jazzil, 2004-08-11T06:46Z

Har gjort om din kod lite 

```
<%@ Page Language="vb"%>
<%@ import namespace="System.Drawing" %>
<%@ import namespace="System.Drawing.Imaging" %>
<script runat="server">
sub Page_Load()
Dim iWidth, iHeight As Integer
Dim szFileName As String

szFileName = Server.MapPath(Request.QueryString("name"))
iWidth = 100
iHeight = 100
Dim image As System.Drawing.Image = image.FromFile(szFileName)
        Dim bmp As New Bitmap(iWidth, iHeight)
        Dim gr As Graphics = Graphics.FromImage(bmp)

		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.DrawImage(image, 0, 0, iWidth, iHeight)
		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")

		Response.ContentType = "image/jpeg"
        bmp.Save(Response.OutPutStream, Imaging.ImageFormat.Jpeg)
        
        image.Dispose()
        bmp.Dispose()

end sub
</script>
```

Jag får felmeddelandet 
BC30561: 'Encoder' is ambiguous, imported from the namespaces or types 'System.Text, System.Drawing.Imaging'.

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

## #4 — fredrik, 2004-08-11T08:32Z

Byt ut "Encoder" mot "System.Drawing.Imaging.Encoder" så ska det funka...

tror heller inte att du behöver göra "gr.save()" innan du sätter inställningarna...utan bara efter...

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

## #5 — jazzil, 2004-08-11T08:40Z

Nu får jag felet
Name 'lCompression' is not declared.

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

## #6 — fredrik, 2004-08-11T08:48Z

Värdet "lCompression" (integer tror jag) är ett värde där du anger vilken JPG-kvalitet du vill att bilden ska ha. 100 är max. Runt 70 brukar vara bra.

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

## #7 — jazzil, 2004-08-11T08:52Z

Tack! för all hjälp :)

Slut koden

```
<%@ Page Language="vb"%>
<%@ import namespace="System.Drawing" %>
<%@ import namespace="System.Drawing.Imaging" %>
<script runat="server">
sub Page_Load()
Dim iWidth, iHeight As Integer
Dim szFileName As String

szFileName = Server.MapPath(Request.QueryString("name"))
iWidth = 100
iHeight = 100
Dim image As System.Drawing.Image = image.FromFile(szFileName)
        Dim bmp As New Bitmap(iWidth, iHeight)
        Dim gr As Graphics = Graphics.FromImage(bmp)
		
        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.DrawImage(image, 0, 0, iWidth, iHeight)
		gr.Save()
        
Dim eps As EncoderParameters = New EncoderParameters(2)
        eps.Param(0) = New EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100)
        eps.Param(1) = New EncoderParameter(New System.Drawing.Imaging.Encoder(System.Drawing.Imaging.Encoder.Compression.Guid), EncoderValue.CompressionLZW)

		Response.ContentType = "image/jpeg"
        bmp.Save(Response.OutPutStream, Imaging.ImageFormat.Jpeg)
        
        image.Dispose()
        bmp.Dispose()

end sub
</script>
```

Nu ska jag bara skriva om den till c# :D

EDIT:
C#

```
<%@ Page Language="c#"%>
<%@ import namespace="System.Drawing" %>
<%@ import namespace="System.Drawing.Imaging" %>
<script runat="server">
void Page_Load(object sender, EventArgs e)
		{			
			int iHeight, iWidth, Quality;
			string szFileName;

			szFileName = Server.MapPath(Request.QueryString["name"]);
			iWidth = 100;
			iHeight = 100;
			Quality = 100;
			
			System.Drawing.Image image = System.Drawing.Image.FromFile(szFileName);
			
			Bitmap bmp = new Bitmap(iWidth, iHeight);
			Graphics gr = Graphics.FromImage(bmp);

			
			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.DrawImage(image, 0, 0, iWidth, iHeight);
			gr.Save();

			EncoderParameters eps = new EncoderParameters(1);
			eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, Quality);

			Response.ContentType = "image/jpeg";
			bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

		    image.Dispose();
			bmp.Dispose();
		}
</script>
```

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

## #8 — jazzil, 2004-08-11T09:41Z

Dim image As System.Drawing.Image = image.FromFile(szFileName)

Hur överstätts den till c#?

```
			System.Drawing.Image image;
			image.FromFile(szFileName);
```

Så har jag försökt med det funkar inge vidare ...
Fel: The type or namespace name 'image' could not be found (are you missing a using directive or an assembly reference?)

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

## #9 — fredrik, 2004-08-11T09:42Z

borde vara typ:

System.Drawing.Image image = System.Drawing.Image.FromFile(szFileName)

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

## #10 — jazzil, 2005-05-26T15:56Z

EDIT: Obs .. helt fel tråd

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/108932-thumbnails
