Como pegar o tamanho de uma imagem via AdvPL

Como pegar o tamanho de uma imagem via AdvPL

Olá pessoal…

Hoje irei mostrar como pegar o tamanho de uma imagem (Altura e Largura em pixels) utilizando a linguagem AdvPL (Protheus).


A rotina pessoal é bem simples, utilizando o componente TBitmap é extraído as informações de altura e largura, para montagem de dialogs ou até mesmo relatórios utilizando tamanho real da imagem sem distorção.

Abaixo um print do retorno da rotina.

Mensagem demonstrando o tamanho da Imagem testada
Mensagem demonstrando o tamanho da Imagem testada

Abaixo o código fonte utilizado.

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zTamImg
Função que retorna o tamanho da Imagem em pixels, tanto largura, como alteura
@author Atilio
@since 23/05/2015
@version 1.0
	@param cImagem, Caracter, Caminho absoluto da imagem a ser analisada
	@return aTamanho, Array contendo os valores de Altura e Largura em pixels
	@example
	u_zTamImg("C:\teste.jpg")
	u_zTamImg("F:\exemplo_bloq.png")
	@see https://terminaldeinformacao.com/advpl/
	@obs O retorno é um array, sendo a posição [1] a Altura, e a posição [2] a Largura.
	Se a imagem não existir, o retorno será sempre 0
/*/

User Function zTamImg(cImagem)
	Local oTImg
	Local aTamanho := {0, 0}
	Default cImagem:= ""
	
	//Criando o objeto com a imagem passada via parâmetro
    oTImg := TBitmap():New(01,01,,,,cImagem,,,,,,,,,,,,,)
    
    //Auto ajusta o tamanho, sem ele, é retornado 0
    oTImg:lAutoSize := .T.
	
	//Altura
	aTamanho[1] := oTImg:nClientHeight
	
	//Largura
	aTamanho[2] := oTImg:nClientWidth
	
	//MsgInfo("A imagem <b>"+cImagem+"</b> tem <b>"+cValToChar(aTamanho[1])+"</b> pixels de Altura e <b>"+cValToChar(aTamanho[2])+"</b> pixels de Largura!", "Atenção")
Return aTamanho

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/AdvPL.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

4 comentários em “Como pegar o tamanho de uma imagem via AdvPL

  1. Fala ai Atílio…

    Show de bola suas dicas que envolvem ADVPL… sempre precisamos fazer alguma coisa que não é prática comum dos consultores ou desenvolvedores ADVPL e ai que suas dicas nos ajudam e muiiiito… valew!!!

    1. Boa tarde Eurai.
      Com o lAutoSize ele seta automaticamente (tanto a altura como a largura da imagem) com o tamanho real da imagem e não redimensionado pelo objeto.
      Um grande abraço.

Deixe uma resposta

%d blogueiros gostam disto: