2008-10-31 20 views
33

tengo una página aspx que cargar imágenes en el disco duro del servidor de PC del clienteASP.NET subir la imagen con cambio de tamaño

Pero ahora tengo que cambiar mi programa de tal manera que me permitiría cambiar el tamaño de la imagen durante la carga.

¿Alguien tiene alguna idea al respecto? No pude encontrar tales propiedades/métodos con el control del servidor de archivos de entrada

¿Alguien allí para guiarme?

+2

¿Cómo se puede "cargar" de un "servidor" a un "cliente"? – ine

+4

Sugiero usar la biblioteca gratuita y de código abierto @ [Cambio de tamaño de la imagen en .NET] (http://imageresizingin.net/) para hacer esto en una sola línea de código. Las otras respuestas están (actualmente) sujetas a uno o más de los [errores comunes] (http://nathanaeljones.com/163/20-image-resizing-pitfalls/). –

+0

ImageBuilder.Current.Build (HttpPostedFile f, string destinationFilename, new ResizeSettings ("maxwidth = 200 y maxheight = 200")); –

Respuesta

5

No podrá cambiar el tamaño "sobre la marcha" ya que tendrá que tener la imagen completa antes de realizar cualquier transformación de imagen. Sin embargo, después de que la carga esté completa y antes de mostrar ningún resultado a su usuario, puede utilizar esta imagen básica método que he utilizado en un par de mis aplicaciones ahora el cambio de tamaño:

''' <summary> 
    ''' Resize image with GDI+ so that image is nice and clear with required size. 
    ''' </summary> 
    ''' <param name="SourceImage">Image to resize</param> 
    ''' <param name="NewHeight">New height to resize to.</param> 
    ''' <param name="NewWidth">New width to resize to.</param> 
    ''' <returns>Image object resized to new dimensions.</returns> 
    ''' <remarks></remarks> 
    Public Shared Function ImageResize(ByVal SourceImage As Image, ByVal NewHeight As Int32, ByVal NewWidth As Int32) As Image 

     Dim bitmap As System.Drawing.Bitmap = New System.Drawing.Bitmap(NewWidth, NewHeight, SourceImage.PixelFormat) 

     If bitmap.PixelFormat = Drawing.Imaging.PixelFormat.Format1bppIndexed Or _ 
      bitmap.PixelFormat = Drawing.Imaging.PixelFormat.Format4bppIndexed Or _ 
      bitmap.PixelFormat = Drawing.Imaging.PixelFormat.Format8bppIndexed Or _ 
      bitmap.PixelFormat = Drawing.Imaging.PixelFormat.Undefined Or _ 
      bitmap.PixelFormat = Drawing.Imaging.PixelFormat.DontCare Or _ 
      bitmap.PixelFormat = Drawing.Imaging.PixelFormat.Format16bppArgb1555 Or _ 
      bitmap.PixelFormat = Drawing.Imaging.PixelFormat.Format16bppGrayScale Then 
     Throw New NotSupportedException("Pixel format of the image is not supported.") 
     End If 

     Dim graphicsImage As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bitmap) 

     graphicsImage.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality 
     graphicsImage.InterpolationMode = Drawing.Drawing2D.InterpolationMode.HighQualityBicubic 
     graphicsImage.DrawImage(SourceImage, 0, 0, bitmap.Width, bitmap.Height) 
     graphicsImage.Dispose() 
     Return bitmap 

    End Function 
+0

+1 para indicar que el cambio de tamaño de la imagen debe realizarse después de cargar toda la imagen. – quakkels

14

vez que el archivo ha sido guardado en el servidor puede usar código como este para cambiar el tamaño. Este código se ocupará de la relación longitud/ancho en el cambio de tamaño.

public static Bitmap CreateThumbnail(string lcFilename, int lnWidth, int lnHeight) 
{ 

    System.Drawing.Bitmap bmpOut = null; 

    try 
    { 
     Bitmap loBMP = new Bitmap(lcFilename); 
     ImageFormat loFormat = loBMP.RawFormat; 

     decimal lnRatio; 
     int lnNewWidth = 0; 
     int lnNewHeight = 0; 

     if (loBMP.Width < lnWidth && loBMP.Height < lnHeight) 
      return loBMP; 

     if (loBMP.Width > loBMP.Height) 
     { 
      lnRatio = (decimal)lnWidth/loBMP.Width; 
      lnNewWidth = lnWidth; 
      decimal lnTemp = loBMP.Height * lnRatio; 
      lnNewHeight = (int)lnTemp; 
     } 
     else 
     { 
      lnRatio = (decimal)lnHeight/loBMP.Height; 
      lnNewHeight = lnHeight; 
      decimal lnTemp = loBMP.Width * lnRatio; 
      lnNewWidth = (int)lnTemp; 
     } 


     bmpOut = new Bitmap(lnNewWidth, lnNewHeight); 
     Graphics g = Graphics.FromImage(bmpOut); 
     g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
     g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 
     g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; 
     g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; 
     g.FillRectangle(Brushes.White, 0, 0, lnNewWidth, lnNewHeight); 
     g.DrawImage(loBMP, 0, 0, lnNewWidth, lnNewHeight); 

     loBMP.Dispose(); 
    } 
    catch 
    { 
     return null; 
    } 
    return bmpOut; 
} 
+0

Un poco OT de la pregunta, pero ¿cómo maneja esto las imágenes de baja resolución? Siempre termino obteniendo imágenes mal formadas con las mías. –

+0

En general, he estado presionando imágenes de alta resolución a través de ese código, por lo que no puedo darle una buena respuesta allí. Honestamente, es muy fácil conectarse a una aplicación y probarla, por lo que es posible que desee intentarlo, no creo que le cueste una cantidad significativa de tiempo. – JPrescottSanders

+0

Obtendrá una línea blanca del 50% (o negra) en el borde exterior de la imagen a menos que use TileModeXY en una instancia de ImageAttributes durante la llamada a DrawImage. –

0
using System.IO; 
using System.Drawing; 
using System.Drawing.Imaging; 

public partial class admin_AddPhoto : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

     string reportPath = Server.MapPath("../picnic"); 

     if (!Directory.Exists(reportPath)) 
     { 
      Directory.CreateDirectory(Server.MapPath("../picnic")); 
     } 
    } 

    protected void PhotoForm_ItemInserting(object sender, FormViewInsertEventArgs e) 
    { 
     FormView uploadForm = sender as FormView; 
     FileUpload uploadedFile = uploadForm.FindControl("uploadedFile") as FileUpload; 

     if (uploadedFile != null) 
     { 
      string fileName = uploadedFile.PostedFile.FileName; 
      string pathFile = System.IO.Path.GetFileName(fileName); 

      try 
      { 
       uploadedFile.SaveAs(Server.MapPath("../picnic/") + pathFile); 
      } 
      catch (Exception exp) 
      { 
       //catch exception here 
      } 

      try 
      { 
       Bitmap uploadedimage = new Bitmap(uploadedFile.PostedFile.InputStream); 

       e.Values["ImageWidth"] = uploadedimage.Width.ToString(); 
       e.Values["ImageHeight"] = uploadedimage.Height.ToString(); 
       // Make output File Name 
       char[] splitter = { '.' }; 
       string[] splitFile = pathFile.Split(splitter); 
       string OutputFilename = splitFile[0] + "s"; 

       System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback); 
       System.Drawing.Image thumbImage = uploadedimage.GetThumbnailImage(74, 54, myCallback, IntPtr.Zero); 
       thumbImage.Save(Server.MapPath("../picnic/") + OutputFilename + ".jpg"); 
       e.Values["Thumbnail"] = "./picnic/" + OutputFilename + ".jpg"; 
      } 
      catch (Exception ex) 
      { 
       //catch exception here 
      } 

      e.Values["Pic"] = "./picnic/" + pathFile; 
      e.Values["Url"] = "./picnic/" + pathFile; 
      e.Values["dateEntered"] = DateTime.Now.ToString(); 
     } 
    } 

    public bool ThumbnailCallback() 
    { 
     return false; 
    } 
} 

Este utiliza un FileUpload y un FormView insertar. Luego utilizo el método GetThumnailImage() provisto en System.Drawing.Imaging. Puede ingresar cualquier valor de Ancho y Alto y se encogerá/estirará en consecuencia.

uploadedimage.GetThumbnailImage(W, H, myCallback, IntPtr.Zero); 

Espero que esto ayude.

0

Puede cambiar el tamaño antes de enviarlo al servidor utilizando un control ActiveX. Hay una ASP.net componente libre de subir una imagen (creo que esto es el mismo que utiliza Facebook en realidad) disponible aquí:

http://forums.aurigma.com/yaf_postst2145_Image-Uploader-ASPNET-Control.aspx

Avísame si funciona, estoy pensando en implementarlo en mi proyectos aquí en el trabajo.

Editar: Parece que el contenedor para el objeto es gratis, sin embargo, el componente real en sí mismo le costará unos $ 200. Confirmé que es el mismo componente que usa Facebook.

2

Tendrá que utilizar la clase WebClient para descargar la imagen remota.

Después de eso, puede cambiar el tamaño ... Utilice DrawImage, no GetThumbnailImage. Asegúrese de deshacerse de su mapa de bits y de sus manejadores gráficos ... (use usando {}). Establezca todas las configuraciones de calidad en alto.

Es posible que desee echar un vistazo a la source code for my popular image resizer primero ... Le ayudará a evitar algunas áreas problemáticas comunes.

1
//Here is another WAY fox!!! i have actually modify the code from You all. HIHI 
//First, add one textBox and one FileUpload Control, and a button 

//paste this in your code behind file... after public partial class admin : System.Web.UI.Page 

    string OriPath; 
    string ImageName; 

public Size NewImageSize(int OriginalHeight, int OriginalWidth, double FormatSize) 
    { 
     Size NewSize; 
     double tempval; 

     if (OriginalHeight > FormatSize && OriginalWidth > FormatSize) 
     { 
      if (OriginalHeight > OriginalWidth) 
       tempval = FormatSize/Convert.ToDouble(OriginalHeight); 
      else 
       tempval = FormatSize/Convert.ToDouble(OriginalWidth); 

      NewSize = new Size(Convert.ToInt32(tempval * OriginalWidth), Convert.ToInt32(tempval * OriginalHeight)); 
     } 
     else 
      NewSize = new Size(OriginalWidth, OriginalHeight); return NewSize; 
    } 



//Now, On Button click add the folwing code. 

if (FileUpload1.PostedFile != null) 
     { 
      ImageName = TextBox1.Text+".jpg"; 


      OriPath = Server.MapPath("pix\\") + ImageName; 

      //Gets the Full Path using Filecontrol1 which points to actual location in the hardisk :) 

      using (System.Drawing.Image Img = System.Drawing.Image.FromFile(System.IO.Path.GetFullPath(FileUpload1.PostedFile.FileName))) 
      { 
       Size ThumbNailSize = NewImageSize(Img.Height, Img.Width, 800); 

       using (System.Drawing.Image ImgThnail = new Bitmap(Img, ThumbNailSize.Width, ThumbNailSize.Height)) 
       { 
        ImgThnail.Save(OriPath, Img.RawFormat); 
        ImgThnail.Dispose(); 
       } 
       Img.Dispose(); 
      } 
} 


//Enjoy. If any problem,, mail me at [email protected] 
1

Para cambiar el tamaño de una imagen hacia abajo y obtener tamaños más pequeños sólo hacen los cambios a continuación

bmpOut = new Bitmap(lnNewWidth, lnNewHeight, **System.Drawing.Imaging.PixelFormat.Format24bppRgb**); 

    Graphics g = Graphics.FromImage(bmpOut); 

medida que por encima de un conjunto de la imagem para Format24bppRgb PixelFormat.

y cuando guarde el archivo, configure el ImageFormat también.De esta manera:

bmpOut.Save(PathImage, System.Drawing.Imaging.ImageFormat.Jpeg); 
1

Puede usar esto, hace un excelente trabajo para mí. Pero no maneja bien las imágenes de baja resolución para mí. Afortunadamente, estoy acostumbrado a muchos de ellos. Acabo de enviarle la imagen byte[] y la salida esperada, y estará listo para continuar.

public static byte[] ResizeImageFile(byte[] imageFile, int targetSize) 
{ 
    using (System.Drawing.Image oldImage = System.Drawing.Image.FromStream(new MemoryStream(imageFile))) 
    { 
     Size newSize = CalculateDimensions(oldImage.Size, targetSize); 

     using (Bitmap newImage = new Bitmap(newSize.Width, newSize.Height, PixelFormat.Format32bppRgb)) 
     { 
      newImage.SetResolution(oldImage.HorizontalResolution, oldImage.VerticalResolution); 
      using (Graphics canvas = Graphics.FromImage(newImage)) 
      { 
       canvas.SmoothingMode = SmoothingMode.AntiAlias; 
       canvas.InterpolationMode = InterpolationMode.HighQualityBicubic; 
       canvas.PixelOffsetMode = PixelOffsetMode.HighQuality; 
       canvas.DrawImage(oldImage, new Rectangle(new Point(0, 0), newSize)); 
       MemoryStream m = new MemoryStream(); 
       newImage.Save(m, ImageFormat.Jpeg); 
       return m.GetBuffer(); 
      } 
     } 

    } 
} 

private static Size CalculateDimensions(Size oldSize, int targetSize) 
{ 
    Size newSize = new Size(); 
    if (oldSize.Width > oldSize.Height) 
    { 
     newSize.Width = targetSize; 
     newSize.Height = (int)(oldSize.Height * (float)targetSize/(float)oldSize.Width); 
    } 
    else 
    { 
     newSize.Width = (int)(oldSize.Width * (float)targetSize/(float)oldSize.Height); 
     newSize.Height = targetSize; 
    } 
    return newSize; 
} 
4

Otro enfoque para permitir al usuario ajustar el tamaño en el navegador y luego cambiar el tamaño de la imagen como se describe en otras respuestas.

Así que eche un vistazo a esta solución que le permite upload and crop images with jQuery, jCrop & ASP.NET.

-1
private void ResizeImage(FileUpload fileUpload) 
{ 
    // First we check to see if the user has selected a file 
    if (fileUpload.HasFile) 
    { 
     // Find the fileUpload control 
     string filename = fileUpload.FileName; 

     // Check if the directory we want the image uploaded to actually exists or not 
     if (!Directory.Exists(MapPath(@"Uploaded-Files"))) 
     { 
      // If it doesn't then we just create it before going any further 
      Directory.CreateDirectory(MapPath(@"Uploaded-Files")); 
     } 
     // Specify the upload directory 
     string directory = Server.MapPath(@"Uploaded-Files\"); 

     // Create a bitmap of the content of the fileUpload control in memory 
     Bitmap originalBMP = new Bitmap(fileUpload.FileContent); 

     // Calculate the new image dimensions 
     int origWidth = originalBMP.Width; 
     int origHeight = originalBMP.Height; 
     int sngRatio = origWidth/origHeight; 
     int newWidth = 100; 
     int newHeight = newWidth/sngRatio; 

     // Create a new bitmap which will hold the previous resized bitmap 
     Bitmap newBMP = new Bitmap(originalBMP, newWidth, newHeight); 

     // Create a graphic based on the new bitmap 
     Graphics oGraphics = Graphics.FromImage(newBMP); 
     // Set the properties for the new graphic file 
     oGraphics.SmoothingMode = SmoothingMode.AntiAlias; 
     oGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic; 

     // Draw the new graphic based on the resized bitmap 
     oGraphics.DrawImage(originalBMP, 0, 0, newWidth, newHeight); 
     // Save the new graphic file to the server 
     newBMP.Save(directory + "tn_" + filename); 

     // Once finished with the bitmap objects, we deallocate them. 
     originalBMP.Dispose(); 
     newBMP.Dispose(); 
     oGraphics.Dispose(); 

     // Write a message to inform the user all is OK 
     label.Text = "File Name: <b style='color: red;'>" + filename + "</b><br>"; 
     label.Text += "Content Type: <b style='color: red;'>" + fileUpload.PostedFile.ContentType + "</b><br>"; 
     label.Text += "File Size: <b style='color: red;'>" + fileUpload.PostedFile.ContentLength.ToString() + "</b>"; 

     // Display the image to the user 
     Image1.Visible = true; 
     Image1.ImageUrl = @"Uploaded-Files/tn_" + filename; 
    } 
    else 
    { 
     label.Text = "No file uploaded!"; 
    } 
} 
+1

¿Cuál es el valor agregado en comparación con otras respuestas? –

0

La carga del archivo de imagen se realiza mediante las devoluciones de llamada de cliente de ASP.NET 4.0. Si no está familiarizado con las devoluciones de llamadas de los clientes, le sugiero que consulte el ASP.Net AJAX Control Toolkit AsyncFileUpload Control sin actualizar la página o PostBack en la página web ASP.Net o ASP.Net AJAX Update Panel. La devolución de llamada se activa tan pronto como el usuario selecciona el archivo usando el control de campo de archivo.

3

Esta es la forma en que lo hice en mi proyecto, basado en su condición (altura/anchura) puede cambiar el parámetro es decir (MaxHeight)

Ver artículo del blog: How to Resize image while uploading in asp.net using c#

public static System.Drawing.Image ScaleImage(System.Drawing.Image image, int maxHeight) 
     { 
      var ratio = (double)maxHeight/image.Height; 

      var newWidth = (int)(image.Width * ratio); 
      var newHeight = (int)(image.Height * ratio); 

      var newImage = new Bitmap(newWidth, newHeight); 
      using (var g = Graphics.FromImage(newImage)) 
      { 
       g.DrawImage(image, 0, 0, newWidth, newHeight); 
      } 
      return newImage; 
     } 

El clic de los botones:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    lblmsg.Text=""; 
    if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0)) 
    { 
    Guid uid = Guid.NewGuid(); 
    string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName); 
    string SaveLocation = Server.MapPath("LogoImagesFolder") + "\\" + uid+fn; 
    try 
    { 
     string fileExtention = File1.PostedFile.ContentType; 
     int fileLenght = File1.PostedFile.ContentLength; 
     if (fileExtention == "image/png" || fileExtention == "image/jpeg" || fileExtention == "image/x-png") 
     { 
     if (fileLenght <= 1048576) 
     { 
      System.Drawing.Bitmap bmpPostedImage = new System.Drawing.Bitmap(File1.PostedFile.InputStream); 
      System.Drawing.Image objImage = ScaleImage(bmpPostedImage, 81); 
      objImage.Save(SaveLocation,ImageFormat.Png); 
      lblmsg.Text = "The file has been uploaded."; 
      lblmsg.Style.Add("Color", "Green"); 
     } 
     else 
     { 
      lblmsg.Text = "Image size cannot be more then 1 MB."; 
      lblmsg.Style.Add("Color", "Red"); 
      } 
     } 
    else { 
      lblmsg.Text = "Invaild Format!"; 
      lblmsg.Style.Add("Color", "Red"); 
      } 
    } 
    catch (Exception ex) 
     { 
      lblmsg.Text= "Error: " + ex.Message; 
      lblmsg.Style.Add("Color", "Red"); 
     } 
    } 
} 
3

Cómo cambiar el tamaño de & Subiendo imagen única para las extensiones .jpg:
En la página upload.aspx

<asp:FileUpload ID="ProductImage" runat="server"/> 
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Upload" /> 
<asp:TextBox runat="server" ID="txtProductName" CssClass="form-control" /> 
         <asp:RequiredFieldValidator runat="server" ControlToValidate="txtProductName" ErrorMessage="The Product name field is required." /> 

Y upload.aspx.cs
Para cambiar el tamaño de

/// <summary> 
/// Created By Rajib Chowdhury Mob. 01766-306306; Web: http://onlineshoping.somee.com/ 
/// Complete This Page Coding On January 05, 2014 
/// Programing C# By Visual Studio 2013 For Web 
/// Dot Net Version 4.5 
/// Database Virsion MSSQL Server 2005 
/// </summary> 
     public bool ResizeImageAndUpload(System.IO.FileStream newFile, string folderPathAndFilenameNoExtension, double maxHeight, double maxWidth) 
     { 
      try 
      { 
       // Declare variable for the conversion 
       float ratio; 
       // Create variable to hold the image 
       System.Drawing.Image thisImage = System.Drawing.Image.FromStream(newFile); 
       // Get height and width of current image 
       int width = (int)thisImage.Width; 
       int height = (int)thisImage.Height; 
       // Ratio and conversion for new size 
       if (width > maxWidth) 
       { 
        ratio = (float)width/(float)maxWidth; 
        width = (int)(width/ratio); 
        height = (int)(height/ratio); 
       } 
       // Ratio and conversion for new size 
       if (height > maxHeight) 
       { 
        ratio = (float)height/(float)maxHeight; 
        height = (int)(height/ratio); 
        width = (int)(width/ratio); 
       } 
       // Create "blank" image for drawing new image 
       Bitmap outImage = new Bitmap(width, height); 
       Graphics outGraphics = Graphics.FromImage(outImage); 
       SolidBrush sb = new SolidBrush(System.Drawing.Color.White); 
       // Fill "blank" with new sized image 
       outGraphics.FillRectangle(sb, 0, 0, outImage.Width, outImage.Height); 
       outGraphics.DrawImage(thisImage, 0, 0, outImage.Width, outImage.Height); 
       sb.Dispose(); 
       outGraphics.Dispose(); 
       thisImage.Dispose(); 
       // Save new image as jpg 
       outImage.Save(Server.MapPath(folderPathAndFilenameNoExtension + ".jpg"), System.Drawing.Imaging.ImageFormat.Jpeg); 
       outImage.Dispose(); 
       return true; 
      } 
      catch (Exception) 
      { 
       return false; 
      } 
     } 

Y Button1_Click Evento

 string filePath = "~\\Image\\";//your normal image path 
     if (Page.IsValid) 
     { 
      HttpPostedFile myFile = ProductImage.PostedFile;//Get Slected Image 
      int nFileLen = myFile.ContentLength;//Get slected Image Size 
      string myimag = txtProductName.Text;//Get user input image name 
      Guid ImageName = Guid.NewGuid();//get unique id 
      if ((myFile != null) && (nFileLen > 1048576)) 
      { 
       LabelAddStatus.Text = "minimum size exceed"; //If file image size 1 MB above 
      } 
      else 
      { 
       try 
       { 
        if (ProductImage.HasFile) 
        { 
         String fileExtension = System.IO.Path.GetExtension(ProductImage.FileName).ToLower(); 
         String[] allowedExtensions = { ".jpg" };//Declare For Allowed Extension 
         for (int i = 0; i < allowedExtensions.Length; i++) 
         { 
          if (fileExtension == allowedExtensions[i]) 
          { 
           // Read file into a data stream 
           byte[] myData = new Byte[nFileLen]; 
           myFile.InputStream.Read(myData, 0, nFileLen); 
           myFile.InputStream.Dispose(); 
           // Save the stream to disk as temporary file. make sure the path is unique! 
           System.IO.FileStream newFile 
             = new System.IO.FileStream(Server.MapPath(filePath + "_temp.jpg"), 
                    System.IO.FileMode.Create); 
           newFile.Write(myData, 0, myData.Length); 
           bool success = ResizeImageAndUpload(newFile, filePath + ("thumbs"+myimag + ImageName), 100, 100);//Save image your thumb image path 
           success = ResizeImageAndUpload(newFile, filePath + (myimag + ImageName), 768, 1024);//Save image your normal image path 
           //delete the temp file. 
           newFile.Close(); 
           System.IO.File.Delete(Server.MapPath(filePath + "_temp.jpg")); 
           LabelAddStatus.Text = "File uploaded."; 
          } 
          else 
          { 
           LabelAddStatus.Text = "Unable to accept file type.."; 
          } 
         } 
        } 
       } 
       catch (Exception) 
       { 
        //No Exception Message 
       } 
      } 
     } 

Gracias ...

0
public string ResizeImageAndSave(int Width, int Height, string imageUrl, string destPath) 
    { 
     System.Drawing.Image fullSizeImg = System.Drawing.Image.FromFile(imageUrl); 
double widthRatio = (double)fullSizeImg.Width/(double)Width; 
    double heightRatio = (double)fullSizeImg.Height/(double)Height; 
    double ratio = Math.Max(widthRatio, heightRatio); 
int newWidth = (int)(fullSizeImg.Width/ratio); 
int newHeight = (int)(fullSizeImg.Height/ratio); 
     //System.Drawing.Image.GetThumbnailImageAbort dummyCallBack = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback); 
     System.Drawing.Image thumbNailImg = fullSizeImg.GetThumbnailImage(newWidth, newHeight, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero); 
//DateTime MyDate = DateTime.Now; 
//String MyString = MyDate.ToString("ddMMyyhhmmss") + imageUrl.Substring(imageUrl.LastIndexOf(".")); 
thumbNailImg.Save(destPath, ImageFormat.Jpeg); 
thumbNailImg.Dispose(); 
     return ""; 
    } 
    public bool ThumbnailCallback() { return false; } 
+0

Bienvenido a stackoverflow y gracias por tomarse el tiempo para responder. Considere también agregar alguna explicación. –

Cuestiones relacionadas