Clipper On Line • Ver Tópico - LARGURA x ALTURA da imagem win32bmp()

LARGURA x ALTURA da imagem win32bmp()

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

LARGURA x ALTURA da imagem win32bmp()

Mensagempor Linguagemclipper » 25 Abr 2022 11:35

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.

   *** 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.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar de usuário

Linguagemclipper
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 214
Data de registro: 16 Abr 2016 17:33
Cidade/Estado: Maceió/AL
Curtiu: 38 vezes
Mens.Curtidas: 12 vezes

LARGURA x ALTURA da imagem win32bmp()

Mensagempor carlaoonline » 27 Abr 2022 17:05

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.
Anexos
Demo10.prg
(19.21 KiB) Baixado 22 vezes
Avatar de usuário

carlaoonline
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 190
Data de registro: 24 Ago 2014 22:38
Cidade/Estado: Porto Alegre-RS
Curtiu: 73 vezes
Mens.Curtidas: 22 vezes

LARGURA x ALTURA da imagem win32bmp()

Mensagempor Linguagemclipper » 02 Mai 2022 11:44

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:

/*
   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
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar de usuário

Linguagemclipper
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 214
Data de registro: 16 Abr 2016 17:33
Cidade/Estado: Maceió/AL
Curtiu: 38 vezes
Mens.Curtidas: 12 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro