Thumbnails i ASP.NET

Här förklarar vi hur du genererar miniatyrbilder (thumbnails) i ASP.NET, och visar exempelkod som du kan utgå ifrån.

I klassisk ASP finns det ingen inbyggd funktionalitet för att generera thumbnails. Då behöver du använda tredjepartskomponenter, till exempel ASPJpeg. I ASP.NET finns det däremot ett inbyggt bibliotek som heter System.Drawing, som kan användas både för thumbnails och för annan bildmanipulering.

Generera thumbnail från fil

Nedan finner du exempelkod för att generera en thumbnail från en fil. Observera att koden behöver modifieras något för att fungera för just din bild. Sökvägen till filen måste ändras, och du kan även behöva justera bildtypen om du inte använder PNG-bilder.

Koden är skriven för att användas i så kallat codebehind-läge och kan behöva modifieras för att fungera korrekt i andra lägen. Du bör justera namespace och klassnamn efter namnet på ditt projekt och ditt ASP.NET-formulär.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace MyProject
{
    public partial class MyPage: System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Prepare callback
            System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);

            // Read source data
            System.Drawing.Image img = System.Drawing.Image.FromFile(Server.MapPath("./images/test.png"));

            // Generate thumbnail
            int width = img.Width / 4;
            int height = img.Height / 4;
            System.Drawing.Image thumb = img.GetThumbnailImage(width, height, myCallback, IntPtr.Zero);

            // Output
            Response.Clear();
            Response.ClearHeaders();
            Response.AddHeader("Content-Type", "image/png");
            MemoryStream ms = new MemoryStream();
            thumb.Save(ms, ImageFormat.Png);
            ms.WriteTo(Context.Response.OutputStream);
            Response.End();
        }

        private bool ThumbnailCallback()
        {
            return false;
        }
    }
}
Was this article helpful?

Related Articles

Få hjälp via fjärrsupport

Klicka på knappen nedan för att starta fjärrsupport via ISL. Ange sessionskoden du fått från oss och klicka på Anslut, så är vi med dig alldeles strax!

Starta fjärrsupport