Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/07/2008, 08:15
Ivan05F
 
Fecha de Ingreso: julio-2008
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Galeria de imagenes

Prueba con esta funcion, a mi me funciono:

//BytesOriginal //original size
//ResizeImageFile(BytesOriginal, 600) //large
//ResizeImageFile(BytesOriginal, 198) //medium
//ResizeImageFile(BytesOriginal, 100) //small
// Helper Functions

Código:
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.Format24bppRgb))
            {
                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.Height > oldSize.Width)
        {
            newSize.Width = (int)(oldSize.Width * ((float)targetSize / (float)oldSize.Height));
            newSize.Height = targetSize;
        }
        else
        {
            newSize.Width = targetSize;
            newSize.Height = (int)(oldSize.Height * ((float)targetSize / (float)oldSize.Width));
        }
        return newSize;
    }
Luego no mas llamas a estos metodos:

byte[] variable = Clase.ResizeImageFile(FileUpload1.FileBytes, 100);

Y tu veras si los guardas en el disco duro o en la base de datos. Saludos

Última edición por Ivan05F; 01/08/2008 a las 09:04