quinta-feira, 21 de julho de 2011

Upload de imagens com redimensionamento C# Asp.Net

No upload utilizo o método RedimensionaImagem do Post anterior, assim já no upload poderá redimensionar as imagens.
Estou utilizando também AjaxControlToolkit.AsyncFileUpload para poder efetuar o upload de dentro do update pannel( fica esta explicação para um próximo post ) poderá utilizar o componete upload da paleta ComonControls da ToolBox.

public void upLoadImages(AjaxControlToolkit.AsyncFileUpload upLoadFile, string path, Boolean flash, Page pg, string fileName)
{
// arquivos imagens do html
if (upLoadFile.HasFile)
{
string tipo = upLoadFile.PostedFile.ContentType;
if (tipo == "image/jpeg" || tipo == "image/gif" || tipo == "image/x-png" || tipo == "image/pjpeg")
{
upLoadFile.SaveAs(pg.Server.MapPath(path) + fileName);
if (pg.Server.MapPath(path) == pg.Server.MapPath(path))
{
ResizeImage(pg.Server.MapPath(path) + fileName, pg.Server.MapPath(path) + fileName, 600, 450, true);
}
}
else if (flash && tipo == "application/x-shockwave-flash")
upLoadFile.SaveAs(pg.Server.MapPath(path)+ fileName);
}
}


Até a próxima.

Redimensionar imagem C#

public void RedimensionarImagem(string OriginalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider)
{
System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(OriginalFile);

FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);

if (OnlyResizeIfWider)
{
if (FullsizeImage.Width <= NewWidth)
{
NewWidth = FullsizeImage.Width;
}
}

int NewHeight = FullsizeImage.Height * NewWidth / FullsizeImage.Width;
if (NewHeight > MaxHeight)
{
NewWidth = FullsizeImage.Width * MaxHeight / FullsizeImage.Height;
NewHeight = MaxHeight;
}

System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(NewWidth, NewHeight, null, IntPtr.Zero);

FullsizeImage.Dispose();
//Onde esta (long)50 refere-se a qualidade que poderá seer alterada conforme necessidade
EncoderParameter ep = new EncoderParameter(Encoder.Quality, (long)50);
EncoderParameters eps = new EncoderParameters(1);
eps.Param[0] = ep;
ImageCodecInfo ic;
ic = GetEncoderInfo("image/jpeg");

NewImage.Save(NewFile, ic, eps);
}