Página 1 de 1
LARGURA x ALTURA da imagem win32bmp()
Enviado: 25 Abr 2022 11:35
por Linguagemclipper
Prezados,
O
win32bmp() imprime a imagem com um array de 4 elementos: posição X, Y, largura, altura.
X e Y é onde queremos que a imagem apareça, ok.
Código: Selecionar todos
*** DEFINE POSIÇÃO DO OBJETO NO PAPEL X,Y,LARGURA,ALTURA
oBmp:Rect := aRECT
A pergunta é: tem alguma função que leia a
largura e
altura de uma imagem?
O problema é o seguinte: estou tendo que armazenar a largura e altura do logotipo além do nome da imagem em meu sistema para poder imprimir no cabeçalho dos relatórios. Tem gente que se enrola com essas coisas. Gostaria que fosse possível pedir apenas o nome do arquivo de imagem e o sistema computasse o resto automaticamente.
LARGURA x ALTURA da imagem win32bmp()
Enviado: 27 Abr 2022 17:05
por carlaoonline
Boa tarde!
usando C:\MiniGUI\SAMPLES\Advanced\BosTaurus\Demo10.prg
Inseri abaixo da linha 250 a seguinte linha:
msgbox("Largura = "+STR(BT_BitmapWidth (hBitmap))+ " Altura = "+str(BT_BitmapHeight (hBitmap)))
e me retornou
Largura = 922 Altura = 692
Que são as medidas da figura SAMI.JPG da pasta.
As linha abaixo, presentes no PRG, fazem a leitura da imagem.
hBitmap_Source := BT_BitmapLoadFile ("SAMI.JPG")
hBitmap := BT_BitmapClone (hBitmap_Source)
Coloquei em anexo o Demo10.prg COM A LINHA 251 acrescida por mim.
LARGURA x ALTURA da imagem win32bmp()
Enviado: 02 Mai 2022 11:44
por Linguagemclipper
O problema é que estou em modo console.
Dei uma pesquisada aqui antes de testar e ví que dá problema em modo console...
Entretanto, nessa direção que você me apontou conseguí achar essa alternativa aqui que vou testar depois. Pareceu interessante.
Vou compartilhar logo aqui pra ficar mais fácil de achar depois:
Código: Selecionar todos
/*
Test.prg
Get image dimensions in pixels.
*/
// Parameter.
#define imageIn hb_dirbase() + "Test.bmp"
procedure Main
local Height, Width
request DBFNTX // Utilisation de fichiers .dbf avec des index .ntx
set( _SET_DATEFORMAT, "DD/MM/YYYY" ) // Affichage de l'année sur 4 chiffres.
set( _SET_EOF, .F. ) // Pas de <Ctrl-Z> à la fin des fichiers créés avec set alte.
set exact on // Pas d'approximation dans la comparaison des chaînes de caractères.
// ANSI ( Windows ) and french language.
request HB_LANG_FR
request HB_CODEPAGE_FRWIN
hb_cdpSelect( 'FRWIN' )
hb_langSelect( 'FR' )
// Taille de la console.
setmode( 43, 80 )
setcolor( "GR+/B" )
@ 0, 0, maxrow(), maxcol() box space( 9 )
setcolor( "W/B" )
Height := 0
Width := 0
GetImageHeightWidth( imageIn, @Height, @Width )
? "File : " + imageIn
? "Height : " + hb_ntos( Height )
? "Width : " + hb_ntos( Width )
?
wait
return
procedure GetImageHeightWidth( cFile, nHeight, nWidth )
local Img1
img1 := win_oleCreateObject( "WIA.ImageFile" )
img1:LoadFile( cFile )
nHeight := img1:Height
nWidth := img1:Width
img1 := nil
return