As vezes precisavamos trabalhar com imagens e mudar o seu tamanho, devido ao seu tamanho e esta ser pesada, para isso podemos trabalhar com uma imagem, vou demostrar 2 exemplos.
O primeiro será para guardar fisicamente no servido a segunda será para guardar na Base de Dados
1.
'1.1 encontra o nome do ficheiro a fazer upload e transforma em fluxo de informação
Dim ImageStream As Stream = ImageLocation.PostedFile.InputStream
'1.2 transforma esse fluxo numa variavel de imagem
Dim tamanho As System.Drawing.Image = System.Drawing.Image.FromStream(ImageStream)
Dim retorna As System.Drawing.Image.GetThumbnailImageAbort = false
'1.3 indica-se as novas dimensoes da imagem
Dim imagem As System.Drawing.Image = tamanho.GetThumbnailImage(imageWidth, imageHeight, retorna, IntPtr.Zero)
'1.4 guarda a imagem num espaço fisico, com uma extenção .png
retorna.Save(Request.PhysicalApplicationPath + "pics\minhaimagem" , ImageFormat.Png)
'1.5 liberta a memoria reservada no IIS
retorna.Dispose()
2.
'2.1 encontra o nome do ficheiro a fazer upload e transforma em fluxo de informação
Dim ImageStream As Stream = ImageLocation.PostedFile.InputStream
'2.2 transforma esse fluxo numa variavel de imagem
Dim tamanho As System.Drawing.Image = System.Drawing.Image.FromStream(ImageStream)
Dim retorna As System.Drawing.Image.GetThumbnailImageAbort = false
'2.3 indica-se as novas dimensoes da imagem
Dim imagem As System.Drawing.Image = tamanho.GetThumbnailImage(imageWidth, imageHeight, retorna, IntPtr.Zero)
Dim imageS1 As MemoryStream = New MemoryStream
'2.4 associamos a imagem ao fluxo de memoria
thumbNailImg.Save(imageS1, ImageFormat.Png)
Dim idimagem(imageS1.Length) As Byte
imageS1.Position = 0
'2.5 envia para byte o fluxo de informação
imageS1.Read(idimagem, 0, CInt(ImageStream.Length))