Fala, galera!!
Segue um código útil para quem precisa trabalhar com imagens em uma aplicação .Net.
O código abaixo utiliza a classe Drawing para redimensionar imagens sem perder a qualidade.
Sub Redimensionar(ByVal CaminhoImagem As String, Optional ByVal MaxLargura As Integer = 0, Optional ByVal MaxAltura As Integer = 0)
Dim Arquivo As String = CaminhoImagem
Dim MaxH As Integer = MaxAltura
Dim MaxW As Integer = MaxLargura
Dim pageContext As System.Web.HttpContext
pageContext = System.Web.HttpContext.Current
Dim OriImg As System.Drawing.Image
OriImg = Image.FromFile(CaminhoImagem)
If OriImg.Width > OriImg.Height Then
'Padrão Paisagem
If OriImg.Width > MaxW Then
MaxH = Convert.ToInt32(OriImg.Height * MaxW / OriImg.Width)
Else
MaxW = OriImg.Width
MaxH = OriImg.Height
End If
Else
'Padrão Retrato
If OriImg.Height > MaxH Then
'MaxH = OriImg.Height
MaxW = Convert.ToInt32(OriImg.Width * MaxW / OriImg.Height)
Else
MaxW = OriImg.Width
MaxH = OriImg.Height
End If
End If
OriImg = OriImg.GetThumbnailImage(MaxW, MaxH, New System.Drawing.Image.GetThumbnailImageAbort(AddressOf MyCallbackDelegate), System.IntPtr.Zero)
Dim MS As System.IO.MemoryStream = New System.IO.MemoryStream
OriImg.Save(MS, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim MsAr As Byte() = MS.ToArray()
pageContext.Response.ContentType = "image/Jpeg"
pageContext.Response.BinaryWrite(MsAr)
End Sub
Private Function MyCallbackDelegate() As Boolean
Return False
End Function
É necessário importar o namespace System.Drawing
Um abraço e até a próxima!!
Assinar:
Postar comentários (Atom)
Amigo, eu utilizei este seu código e funcionou perfeitamente. O meu único problema com ele é que ao invés de limpar a página corrente e mostrar somente a imagem redimensionada eu gostaria de carregar esta imagem num componente image que existe na minha tela. Você sabe me dizer se isto é possível?
ResponderExcluirObrigado!
Arnaldo.
Olá amigo,
ResponderExcluirDesculpe a demora.
Você pode criar uma página aspx que renderiza a imagem e passá-la como parâmetro no seu componente de imagem.
Exemplo:
img src="resize.aspx?file=c:/imagem.jpg"
ou
asp:Image imageUrl="resize.aspx?file=c:/imagem.jpg"
Espero ter ajudado!
Abraços!