l'allegato non l'ho guardato, se vuoi prova questo
ovviamente va cambiato percorso e nome dell'immagine, quelle che ho indicato si riferiscono a impostazioni mie locali
i parametri non sono in GET solo per comodità
codice:
using System;
using System.Drawing;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// contenitore dell'immagine in ingresso
System.Drawing.Image immagineIN;
// prende i dati dalla querystring
//int dimLato = Convert.ToInt32(Request.QueryString["lato"]);
int dimLato = 120;
//string strNomeFile = Request.QueryString["nomefile"];
string strPercorsoImmagine = Server.MapPath(".") + "/images/pippo.jpg";
try
{
// carica l'immagine di partenza
immagineIN = System.Drawing.Image.FromFile(strPercorsoImmagine);
// determina l'orientamento dell'immagine
bool orizzontale = (immagineIN.Width > immagineIN.Height);
// misura lato minore e maggiore
int latoMinore = (orizzontale) ? immagineIN.Height : immagineIN.Width;
int latoMaggiore = (orizzontale) ? immagineIN.Width : immagineIN.Height;
// calcola le coordinate per centrare l'immagine nel rettangolo di taglio
int posizione_centrale = latoMaggiore / 2 - latoMinore / 2;
int posX = (orizzontale) ? posizione_centrale: 0;
int posY = (orizzontale) ? 0: posizione_centrale;
// crea un nuovo oggetto bitmap delle dimensioni della thumbnail
// che useremo per ottenere la superficie grafica
using (Bitmap bmThumb = new Bitmap(dimLato, dimLato, System.Drawing.Imaging.PixelFormat.Format24bppRgb))
{
using (Graphics grTela = Graphics.FromImage(bmThumb))
{
// rettangolo per il ridimensionamento
Rectangle rectDimensioniFinali = new Rectangle(0, 0, dimLato, dimLato);
// Imposta un'interpolazione molto accurata (più lenta)
grTela.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
// disegna l'immagine nella thumbnail
grTela.DrawImage(immagineIN, rectDimensioniFinali, posX, posY, latoMinore, latoMinore, GraphicsUnit.Pixel);
// indica al client che sta per ricevere un'immagine Jpeg
Response.ContentType = "image/jpeg";
bmThumb.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
immagineIN.Dispose();
immagineIN = null;
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}