Nandotrin 0 Denunciar post Postado Janeiro 15, 2008 Boa Noite! Tenho um código em asp.net que reduz a qualidade de uma certa imagem e roda perfeito, só que quero poder controlar a altura ou a largura do resultado da imagem, pois sempre gera a imagem com o tamanho original, e gostaria que ficasse em 200 pixels de largura. Como implemento esse código??? <%@ Page Debug="True" %> <%@ Import Namespace="System.Drawing" %> <%@ Import Namespace="System.Drawing.Imaging" %> <%@ Import Namespace="System.Drawing.Drawing2D" %> <script language="VB" runat="server"> Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim oCanvas As Bitmap = CType(Bitmap.FromFile("E:\vhosts\dominio.com.br\httpdocs\img\teste2.jpg"), Bitmap) Dim encoderParams as System.Drawing.Imaging.EncoderParameters = new System.Drawing.Imaging.EncoderParameters() Dim g As Graphics = Graphics.FromImage(oCanvas) g.SmoothingMode = SmoothingMode.HighQuality g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic g.SmoothingMode = SmoothingMode.HighQuality Dim quality as long = 90 Dim encoderParam as System.Drawing.Imaging.EncoderParameter = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality) encoderParams.Param(0) = encoderParam Dim arrayICI as ImageCodecInfo() = ImageCodecInfo.GetImageEncoders() Dim jpegICI as ImageCodecInfo Dim x as integer for x = 0 to arrayICI.Length-1 if (arrayICI(x).FormatDescription.Equals("JPEG")) then jpegICI = arrayICI(x) exit for end if next if not jpegICI is nothing then oCanvas.Save(Response.OutputStream, jpegICI, encoderParams) end if Response.ContentType = "image/jpeg" oCanvas.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.jpeg) g.Dispose() oCanvas.Dispose() End Sub </script>Agradeço a ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Janeiro 15, 2008 Depois desta linha: g.SmoothingMode = SmoothingMode.HighQuality Adicione as seguintes linhas: Dim vSize As New Size(100, 50) oCanvas = New Bitmap(oCanvas, vSize) Deixei como exemplo 100 e 50, deixa como quiser.... Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Nandotrin 0 Denunciar post Postado Janeiro 15, 2008 Cara, http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Valeu mesmo, funcionou perfeitamente, coisa tão simples né e eu moscando. Só uma outra pergunta, mais uma dica mesmo, esse código é bem leve pra rodar várias vezes no servidor??? Digo se muitos visitantes acessarem não vai travar nada, ou sobrecarregar???? Gostaria de uma dica para manter o servidor rodando o mais leve possível mesmo com trafego intenso. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Janeiro 15, 2008 Nandotrin o esquema para manter o sistema, sem que ele caia com muitos acessos é destruir os objetos que não serão mais usados, principalmente quando se trata de aplicações web. No seu código mesmo esta sendo feito isso: g.Dispose() oCanvas.Dispose() Procure sempre destuir os objetos para que não fiquem armazenados na memória, esse é o esquema. Abraços... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Nandotrin 0 Denunciar post Postado Janeiro 16, 2008 Ok, muito obrigado pela resposta. Agora consigo mexer na qualidade e nas dimensões graça a sua ajuda, só mais uma dúviada é possivel reduzir aquele "serrilhado" que fica na imagem???? :rolleyes: Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Janeiro 16, 2008 Nandotrin acho que para isto só se encontrar algum componente que edite a imagem e mantenha a qualidade dela, fazendo este redimensinamento do tamanho da imagem pelo .net acho que não terá como tirar. Teria que procurar algum componente no asp, o pessoal utiliza o AspJpeg por exemplo, mas nunca testei nenhum para .net, de uma pesquisada. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
wcsantos 0 Denunciar post Postado Junho 15, 2009 Eu achei este código e pensei em implementar, porém a imagem está sendo exibida na tala ao invés de salvar no hd. O que está errado no código? O que preciso alterar? Agradeço desde já! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Junho 15, 2009 wcsantos este tópico tem mais de 1 ano. Crie seu tópico com sua dúvida. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites