---
title: "thumnails... i C#"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/143732-thumnails-i-c"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Bjuris"
published: "2006-03-10T12:52:47.000Z"
updated: "2006-04-03T09:42:23.000Z"
replies: 16
views: 989
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/143732-thumnails-i-c"
---

# thumnails... i C#

## #1 — Bjuris, 2006-03-10T12:52Z

Hittade en gammal klass som genererar bilder hämtade från en databas.
Har egentligen bara ett problem och det är att jag skulle vilja göra om så att jag kan siza om bilderna, men jag vet inte riktigt hur jag skall implementera detta.

Kodexempel som jag hittade och som för övrigt fungerar klockrent verkar inte använda sig av Outputstream på samma vis som jag, är det någon som kan hjälpa mig?

```
string SQL = "SELECT FileSize, FileData, ContentType FROM tblFile WHERE FileID = " + FileID.ToString();

OleDbCommand dbComm = new OleDbCommand(SQL, dbConn);
OleDbDataReader dbRead = dbComm.ExecuteReader();
dbRead.Read();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = (string)dbRead["ContentType"];
HttpContext.Current.Response.OutputStream.Write((byte[])dbRead["FileData"], 0, (int)dbRead["FileSize"]);
HttpContext.Current.Response.End();
```

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

## #2 — m_soderlund, 2006-03-10T12:58Z

Genererar du nu en tumnagel för varje sidvisning eller har du tumnaglar som du skapar en gång och lagrar på servern sen?

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

## #3 — Bjuris, 2006-03-10T13:11Z

För varje visning.

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

## #4 — m_soderlund, 2006-03-10T13:29Z

Det är jättedumt för det tar en del kraft att skapa tumnaglar. Skapa tumnagel en gång, spara på disken och sökväg i databasen, skriv sen ut sökvägen.

Ta en titt på denna artikel och implementera den i ditt script: <http://blogs.msdn.com/kaevans/archive/2003/07/02/9608.aspx>

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

## #5 — Bjuris, 2006-03-10T14:17Z

ok.
Hur skall man skapa tummarna då?
Det är ju fredag, jag får i varje fall bara små kryssbilder...

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

## #6 — m_soderlund, 2006-03-10T14:24Z

Har du läst artikeln jag länkade till? Där står det mesta skrivet bra. :)

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

## #7 — Bjuris, 2006-03-10T14:37Z

japp har läst och fixat koden, men fortfarande inga småbilder.
När jag klickar på det röda krysset så får jag ett nytt fönster och där visas den stora bilden.
måste vara något knas :
thumbNail.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

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

## #8 — m_soderlund, 2006-03-10T14:44Z

Jag tror att det har att göra med sökvägen du lagrar i databasen. Kan du visa oss all ämnesrelaterad kod? :)

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

## #9 — Bjuris, 2006-03-10T14:52Z

Tänkte att jag skulle skippa databasen helt och hållet, det är egentligen ganska onödigt då det inte skall vara någon text till bilderna utan dem skall bara visas.

På så sätt så kunde jag använda hans lösning nästan helt ut.
Filerna ligger i projektrooten samt att bildena ligger där också.

Här kommer då all ämnesrelaterad kod:  :e 

galleri.aspx

```
<ItemTemplate >
	<asp:HyperLink Runat='server'  ImageUrl='<%# string.Concat("MakeThumbNail.aspx?file=",DataBinder.Eval(Container.DataItem,"Name")) %>'
	NavigateUrl='<%# DataBinder.Eval(Container.DataItem,"Name") %>' ID="Hyperlink1"></asp:HyperLink>
</ItemTemplate>
```

Galleri.aspx.cs

```
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(Server.MapPath("."));
DataList1.DataSource = dir.GetFiles("*.jpg");
DataList1.DataBind();
```

MakethumbNail.aspx

```
<%@ Page language="c#" CodeFile="MakeThumbnail.aspx.cs" AutoEventWireup="false" Inherits="MakeThumbNail" %>
```

makethumbnail.aspx.cs

```
public partial class MakeThumbNail : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
	{
		System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);

		System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath(Request.QueryString["file"]));
		
		Response.Write(Server.MapPath(Request.QueryString["file"])+"TEST");
		
		System.Drawing.Image thumbNail = image.GetThumbnailImage(100, 80, myCallback, IntPtr.Zero);
		Response.ContentType = "image/jpeg";
		thumbNail.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
		image.Dispose();
		thumbNail.Dispose();
		

	}
	public bool ThumbnailCallback()
	{
		return false;
	}

}
```

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

## #10 — Dino, 2006-03-10T15:32Z

makethumbnail.aspx.cs

```
public partial class MakeThumbNail : System.Web.UI.Page
{
   protected void Page_Load(object sender, EventArgs e)
   {
      Bitmap bmap = null;

      Image img = System.Drawing.Image.FromFile(Server.MapPath(Request.QueryString["file"]));
      bmap = this.Resize(img, 100, 80);

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

   private Bitmap Resize(System.Drawing.Image image, int width)
   {
      int height = (int) (width * ((double) image.Height / (double) image.Width));
      return Resize(image, width, height);
   }

   private Bitmap Resize(System.Drawing.Image image, int width, int height)
   {
      Bitmap bitmap = new Bitmap(width, height);       
      bitmap.SetResolution(image.HorizontalResolution, image.VerticalResolution);
			
      using(Graphics graphics = Graphics.FromImage(bitmap))
      {
         graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
         graphics.DrawImage(image, 
                    new Rectangle(0, 0, width, height),
                    new Rectangle(0, 0 ,image.Width, image.Height),
                    GraphicsUnit.Pixel);
      }
      image.Dispose();
      return bitmap;
   }
}
```

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

## #11 — Bjuris, 2006-03-13T07:20Z

får fortfarande ett rött kryss, vad gör jag för fel?

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

## #12 — Bjuris, 2006-03-16T12:02Z

nu skäms jag, men \*bump\* \*bump\*

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

## #13 — Dino, 2006-03-16T13:05Z

Hur värdet av Server.MapPath(Request.QueryString\["file"\]) ut. Kan ju vara fel där.

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

## #14 — Bjuris, 2006-03-16T14:14Z

Server.MapPath fungerar som den skall och visar rätt.
Om jag klickar på min thumbnail (som inte genereras) så dyker min vanliga bild upp (jag använder samma sökväg till båda)

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

## #15 — emission, 2006-03-16T21:34Z

Kolla på själva bild-URL:en direkt. Felmeddelande?

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

## #16 — Bjuris, 2006-03-17T06:45Z

Det är det som är det jäkliga... får inget felmess utan själva koden verkar fungera finfint.

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

## #17 — Bjuris, 2006-04-03T09:42Z

Har kollat runt lite och blir lite fundersam om det är något liknanade som ett gamalt inlägg: <http://www.webforum.nu/showthread.php?t=96278&highlight=thumbnail>

Någon som kanske har något input om att det är något som inte är kompatibelt med bildhantering?

Använde lightbox, men har plockat bort den för att "undersöka" men den var oskyldig :)

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/143732-thumnails-i-c
