C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Дебетовая карта Home Credit [CPS] RU

 Dynamically resize uploaded images & save in PNG format / Images and multimedia / ASP. NET

Sample Image - PNGUploader.jpg


Uploading images & storing them dynamically after resizing is a painless affair now using .NET, unlike what it used to be in Classic ASP. There are several good articles on uploading & resizing images on CodeProject (.NET Image Uploading [^], File Upload with ASP.NET [^], Thumbnail Image Creation and Image format Conversion Utility [^]) & elsewhere on the net (True Image Resizing [^]). One issue with resizing images is that the quality of the image deteriorates. This article is written in praise of the PNG image format & shows how the original quality of the uploaded image of any regular format can be maintained & even be improved.

PNG - What's it?

Check out this excellent article on the PNG image format - FAQ: Converting GIF or JPG to PNG [^]. To paraphrase the article -

  • PNG stands for Portable Network Graphics and pronounced "ping".
  • PNG is supported by the major browsers (Microsoft IE and Netscape 4.x and higher)
  • The images are a lot clearer, no more grainy GIF images or pixelated JPGs!

Source code

This application allows the user to set the dimensions for the image to be resized & uploaded. The resized image is converted into the W3C Portable Network Graphics (PNG) image format by using the PNG property of the ImageFormat class.

<%@ Page Language="C#" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<script runat="server">
//Pics folder has to be created under the current folder
   void UploadBtn_Click(Object sender, EventArgs e)
    String UploadedFile = MyFile.PostedFile.FileName;
    int ExtractPos = UploadedFile.LastIndexOf("\\") + 1;
    //to retrieve only Filename from the complete path
    String UploadedFileName =  UploadedFile.Substring
    (ExtractPos,UploadedFile.Length - ExtractPos);
    // Display information about posted file. Div is invisible by default   
    FileName.InnerHtml =UploadedFileName;
    MyContentType.InnerHtml = MyFile.PostedFile.ContentType;
    = MyFile.PostedFile.ContentLength.ToString();
    FileDetails.Visible = true; //div is made visible
    // Save uploaded file to server at the in the Pics folder
   + "pics\\" + UploadedFileName );
   //thumbnail creation starts

   //Retrieve the image filename whose thumbnail has to be created
   String imageUrl=  UploadedFileName;
   //Read in the width and height
   int imageHeight =Convert.ToInt32(h.Text);
   int imageWidth  = Convert.ToInt32(w.Text); 
   //You may even specify a standard thumbnail size
   //int imageWidth  = 70; 
   //int imageHeight = 70;
   if (imageUrl.IndexOf("/") >= 0 || imageUrl.IndexOf("\\") >= 0 )
    //We found a / or \
   //the uploaded image will be stored in the Pics folder.
   //to get resize the image, the original image has to be
   //accessed from the Pics folder
   imageUrl = "pics/" + imageUrl;
   System.Drawing.Image fullSizeImg 
   = System.Drawing.Image.FromFile(Server.MapPath(imageUrl));
   System.Drawing.Image.GetThumbnailImageAbort dummyCallBack 
   = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
   System.Drawing.Image thumbNailImg 
   = fullSizeImg.GetThumbnailImage(imageWidth, imageHeight, 
   dummyCallBack, IntPtr.Zero);
   //We need to create a unique filename for each generated image
   DateTime MyDate = DateTime.Now;
   String MyString  = MyDate.ToString("ddMMyyhhmmss") + ".png" ;
   //Save the thumbnail in PNG format. 
   //You may change it to a diff format with the ImageFormat property
   thumbNailImg.Save ( Request.PhysicalApplicationPath 
   + "pics\\" +   MyString , ImageFormat.Png);
   //Display the original & the newly generated thumbnail
   Image1.AlternateText = "Original image";
   Image1.ImageUrl="pics\\" + UploadedFileName;
   Image2.AlternateText = "Thumbnail";
   Image2.ImageUrl="pics\\" + MyString;
  catch(Exception ex)
  Response.Write("An error occurred - " + ex.ToString());
  //this function is reqd for thumbnail creation
  public bool ThumbnailCallback()
     return false;

How to run the app

Unzip & run the .aspx file using IIS. Make sure a folder named PICS is created before-hand in the current working directory.


This article demonstrates how the quality of dynamically created images can be maintained & even enhanced by saving them in PNG format.

Дебетовая карта Home Credit [CPS] RU