 
			
				23/07/2008, 03:36
			
			
			     |  
      |    |    |    Fecha de Ingreso: diciembre-2007  
						Mensajes: 36
					  Antigüedad: 17 años, 9 meses Puntos: 0     |        |  
  |      Respuesta: Galeria de imagenes        Ya he la manera de hacerlo, el problema que tengo es que necesitaria que al redimensionar la miniatura mantuviese las proporciones para que no salga achatada, ¿alguien sabe como hacerlo?   
Código:
        // Initialize variables
        string sSavePath;
        string sThumbExtension;
        int intThumbWidth;
        int intThumbHeight;
        // Set constant values
        sSavePath = "http://www.forosdelweb.com/images/";
        sThumbExtension = "_thumb";
        intThumbWidth = 160;
        intThumbHeight = 120;
        // If file field isn’t empty
        if (filUpload.PostedFile != null)
        {
            // Check file size (mustn’t be 0)
            HttpPostedFile myFile = filUpload.PostedFile;
            int nFileLen = myFile.ContentLength;
            if (nFileLen == 0)
            {
                lblOutput.Text = "No se ha subido ningun archivo.";
                return;
            }
            // Check file extension (must be JPG)
            if (System.IO.Path.GetExtension(myFile.FileName).ToLower() != ".jpg"&&
                    System.IO.Path.GetExtension(myFile.FileName).ToLower() != ".gif"&&
                        System.IO.Path.GetExtension(myFile.FileName).ToLower() != ".bmp")
            {
                lblOutput.Text = "La extension del archivo debe ser JPG, GIF o BMP";
                return;
            }
            string extension = System.IO.Path.GetExtension(myFile.FileName).ToLower();
            string idunico = DateTime.Now.ToFileTimeUtc().ToString();
            // Read file into a data stream
            byte[] myData = new Byte[nFileLen];
            myFile.InputStream.Read(myData, 0, nFileLen);
            // Make sure a duplicate file doesn’t exist.  If it does, keep on appending an 
            // incremental numeric until it is unique
            string sFilename = System.IO.Path.GetFileName(myFile.FileName);
 
                sFilename = System.IO.Path.GetFileNameWithoutExtension(myFile.FileName)
                                 +idunico+extension;
            // Save the stream to disk
            System.IO.FileStream newFile
                    = new System.IO.FileStream(Server.MapPath(sSavePath + sFilename),
                                               System.IO.FileMode.Create);
            newFile.Write(myData, 0, myData.Length);
            newFile.Close();
            // Check whether the file is really a JPEG by opening it
            System.Drawing.Image.GetThumbnailImageAbort myCallBack =
                           new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
            Bitmap myBitmap;
            try
            {
                myBitmap = new Bitmap(Server.MapPath(sSavePath + sFilename));
                // If jpg file is a jpeg, create a thumbnail filename that is unique.
                string sThumbFile = System.IO.Path.GetFileNameWithoutExtension(myFile.FileName)
                                                         + sThumbExtension + extension;
                    sThumbFile = System.IO.Path.GetFileNameWithoutExtension(myFile.FileName) +
                                  idunico + sThumbExtension + extension;
                // Save thumbnail and output it onto the webpage
                System.Drawing.Image myThumbnail
                        = myBitmap.GetThumbnailImage(int)(int)myBitmap.Width,
                                                     (int)(int)myBitmap.Height, myCallBack, IntPtr.Zero);
                myThumbnail.Save(Server.MapPath(sSavePath + sThumbFile));
                imgPicture.ImageUrl = sSavePath + sThumbFile;
                // Se muestra el resultado de la operación
                lblOutput.Text = "El archivo ha sido subido de forma satisfactoria";
                // Destroy objects
                myThumbnail.Dispose();
                myBitmap.Dispose();
            }
            catch (ArgumentException errArgument)
            {
                // The file wasn't a valid jpg file
                lblOutput.Text = "El archivo no es un JPG valido.";
                System.IO.File.Delete(Server.MapPath(sSavePath + sFilename));
            }
        }
            
					
						Última edición por Ciberyo; 24/07/2008 a las 03:54
					
					
						Razón: Correccion de la linea   System.Drawing.Image myThumbnail = myBitmap.GetThumbnailImage(int)(int)...
					
				          |