Usuário com melhor resposta
Upload de fotos alterando o tamanho do arquivo..

Pergunta
-
<object height="0" id="0a2b5a8b-1a6b-a1af-fbc9-f8ac6a98b5bf" type="application/gas-events-cef" width="0"></object>Amigos, gostaria de saber se é possível alterar o tamanho de uma foto ao fazer o upload pelo FileUpload do VS. Tipo se a foto for muito grande, irá, automaticamente, ter seu tamanho alterada... Com fazer??
Respostas
-
Pega ai cara.
/// <summary> /// Método para redimencionar imagens /// </summary> /// <param name="caminhoImg">Caminho da imagem a ser redimencionada</param> /// <param name="savePathThumb">Caminho para onde a imagem já redimencionada será salva.</param> /// <param name="pWidth">Define largura da thumb (x)</param> /// <param name="pHeight">Define altura da thumb (y)</param> /// <param name="redimYX">Informa se vai redimencionar x e y</param> public static void RedimencionarImagem(string caminhoImg, string savePathThumb, int? pWidth, int? pHeight, bool? redimYX) { System.Drawing.Image ImagemOriginal; try { ImagemOriginal = System.Drawing.Image.FromFile(caminhoImg); Bitmap ImagemThumb = new Bitmap(pWidth == null ? Convert.ToInt32(PadraoThumb.largura) : pWidth.Value, pHeight == null ? Convert.ToInt32(PadraoThumb.altura) : pHeight.Value); // Criao do objeto Graphics GraficoThumb = Graphics.FromImage(ImagemThumb); //Transformar Fundo de GIFs transparente em Branco object sbThumb = new SolidBrush(System.Drawing.Color.White); GraficoThumb.FillRectangle((Brush)sbThumb, 0, 0, ImagemThumb.Width, ImagemThumb.Height); // Recriar a imagem com Height e Width denfinido GraficoThumb.DrawImage(ImagemOriginal, 0, 0, ImagemThumb.Width, ImagemThumb.Height); try { //Size TAMANHO = new Size(Convert.ToInt32((ImagemOriginal.Size.Width.ToString())), Convert.ToInt32((ImagemOriginal.Size.Height.ToString()))); //ImagemOriginal.Size.cRE = TAMANHO; ImagemThumb.Save(savePathThumb, ImagemOriginal.RawFormat); //arquivo thumb } catch { throw; } // Liberando memória if (ImagemThumb != null) { ImagemThumb.Dispose(); ImagemThumb = null; } } catch { throw; } if (!(ImagemOriginal == null)) { ImagemOriginal.Dispose(); ImagemOriginal = null; } }
Abraço!
- Marcado como Resposta fernando silva 1Moderator sexta-feira, 19 de julho de 2013 16:38
Todas as Respostas
-
Olá Marcus, veja se te ajuda
Bitmap foto = (Bitmap)Image.FromStream(new MemoryStream(bytesImagem)); int width = 640; int height = (int)(width * foto.Height) / foto.Width; Bitmap fotoSmall = new Bitmap(width, height); Graphics gr = Graphics.FromImage(fotoSmall); gr.DrawImage(foto, new Rectangle(0, 0, fotoSmall.Width, fotoSmall.Height), 0, 0, foto.Width, foto.Height, GraphicsUnit.Pixel); gr.Dispose(); fotoSmall.Save("NomeDoArquivo");
Nesse caso defini que a largura sera 640 pixels e a altura será proporcional a imagem original mas pode colocar o valor que quiser.
Abraço.
-
Tem várias maneiras
http://stackoverflow.com/questions/1922040/resize-an-image-c-sharp
Aqui sem perder qualidade
Bitmap newImage = new Bitmap(newWidth, newHeight); using (Graphics gr = Graphics.FromImage(newImage)) { gr.SmoothingMode = SmoothingMode.HighQuality; gr.InterpolationMode = InterpolationMode.HighQualityBicubic; gr.PixelOffsetMode = PixelOffsetMode.HighQuality; gr.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight)); }
Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
-
Pega ai cara.
/// <summary> /// Método para redimencionar imagens /// </summary> /// <param name="caminhoImg">Caminho da imagem a ser redimencionada</param> /// <param name="savePathThumb">Caminho para onde a imagem já redimencionada será salva.</param> /// <param name="pWidth">Define largura da thumb (x)</param> /// <param name="pHeight">Define altura da thumb (y)</param> /// <param name="redimYX">Informa se vai redimencionar x e y</param> public static void RedimencionarImagem(string caminhoImg, string savePathThumb, int? pWidth, int? pHeight, bool? redimYX) { System.Drawing.Image ImagemOriginal; try { ImagemOriginal = System.Drawing.Image.FromFile(caminhoImg); Bitmap ImagemThumb = new Bitmap(pWidth == null ? Convert.ToInt32(PadraoThumb.largura) : pWidth.Value, pHeight == null ? Convert.ToInt32(PadraoThumb.altura) : pHeight.Value); // Criao do objeto Graphics GraficoThumb = Graphics.FromImage(ImagemThumb); //Transformar Fundo de GIFs transparente em Branco object sbThumb = new SolidBrush(System.Drawing.Color.White); GraficoThumb.FillRectangle((Brush)sbThumb, 0, 0, ImagemThumb.Width, ImagemThumb.Height); // Recriar a imagem com Height e Width denfinido GraficoThumb.DrawImage(ImagemOriginal, 0, 0, ImagemThumb.Width, ImagemThumb.Height); try { //Size TAMANHO = new Size(Convert.ToInt32((ImagemOriginal.Size.Width.ToString())), Convert.ToInt32((ImagemOriginal.Size.Height.ToString()))); //ImagemOriginal.Size.cRE = TAMANHO; ImagemThumb.Save(savePathThumb, ImagemOriginal.RawFormat); //arquivo thumb } catch { throw; } // Liberando memória if (ImagemThumb != null) { ImagemThumb.Dispose(); ImagemThumb = null; } } catch { throw; } if (!(ImagemOriginal == null)) { ImagemOriginal.Dispose(); ImagemOriginal = null; } }
Abraço!
- Marcado como Resposta fernando silva 1Moderator sexta-feira, 19 de julho de 2013 16:38