Categorias

Resize e Crop em uma Imagem com ASPJpeg

Com esta função é possível Redimencionar uma imagem e depois fazer um Crop utilizando o componente da Persits o ASPJpeg.

A vantagem desta função é que ela verifica qual é a melhor proporção para fazer o Crop, verificando a largura e a altura da imagem.

<%
'-----------------------------------------------------
'Funcao:  ResizeCropImagem(ByVal CaminhoImagem, ByVal Largura, ByVal Altura)
'Sinopse: Faz um Resize e Crop na imagem
'Parametros:
'	CaminhoImagem: Caminho Completo da Imagem
'	Largura
'	Altura
'Retorno: String ("OK" quando for executada com sucesso)
'Autor: Gabriel Fróes - www.codigofonte.com.br
'-----------------------------------------------------
Function ResizeCropImagem(ByVal CaminhoImagem, ByVal Largura, ByVal Altura)
	'Declarando e inicializando as variaveis e objetos
	Dim objJpeg
	Dim objUpload
	Dim X1
	Dim Y1

	On Error Resume Next

	'----------------------------------------
	'Realizando o tratamento da imagem
	'----------------------------------------
	X1 = Largura
	Y1 = Altura
	Set objJpeg	= Server.CreateObject("Persits.Jpeg")
	Call objJpeg.Open(CaminhoImagem)
	'Tipo de redimencionamento
	objJpeg.Interpolation = 2 '0=Baixa 1=Média 2=Alta Qualidade
	'Verificando a proporção da imagem
	If objJpeg.OriginalWidth < objJpeg.Height Then
		objJpeg.Width	= Largura
		objJpeg.Height	= objJpeg.OriginalHeight * objJpeg.Width / objJpeg.OriginalWidth
		Y1 = Altura
	Else
		objJpeg.Height	= Altura
		objJpeg.Width	=  objJpeg.OriginalWidth * objJpeg.Height / objJpeg.OriginalHeight
		X1 = Largura
	End If
	Call objJpeg.Crop(0,0,X1,Y1)
	'Definindo a qualidade
	objJpeg.Quality = 90
	'Salvando o arquivo no servidor
	Call objJpeg.Save(CaminhoImagem)
	Set objJpeg	= Nothing
	'----------------------------------------
		
	'Retornando a função
	If Err.number = 0 Then
		ResizeCropImagem = "OK"
	Else
		ResizeCropImagem = Err.Description
		Err.Clear()
	End If
End Function

'--------------------------------------------------------
'EXEMPLO DE CHAMADA
'--------------------------------------------------------
Dim Caminho
Dim Retorno
Caminho = Server.MapPath("imagemfake.gif")
Retorno = ResizeCropImagem(Caminho, 150, 150)
If Retorno = "OK" Then
	Response.Write "Imagem redimencionada com sucesso!"
Else
	Response.Write Retorno
End If
'--------------------------------------------------------
%>