Rotera bilder i ASP.NET

I klassisk ASP så finns det ingen inbyggd funktionalitet för att rotera bilder. Då behöver man använda tredjeparts-komponenter som t.ex. ASPJpeg. I ASP.NET däremot så finns det ett inbyggt bibliotek som heter System.Drawing och kan användas både för att rotera bilder och för annan form av bildmanipulering.

Rotera en bild

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

Koden är skriven för att användas i så kallat codebehind-läge och kan behöva modifikationer för att fungera korrekt annars. Du bör justera namespace och klassnamn efter namn 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 MyClass: System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Read source data
            System.Drawing.Image img = System.Drawing.Image.FromFile(Server.MapPath("./images/test.png"));

            // Rotate & Flip
            img.RotateFlip(RotateFlipType.Rotate90FlipX);

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

Värden för RotateFlip

De värden man kan använda för anropet till metoden RotateFlip() kan man se i dokumentationen för RotateFlipType. Notera att man inte enbart kan rotera bilden med denna metod, utan även spegelvända bilden åt olika håll.

Var den här artikeln till hjälp?

Relaterade artiklar