BMP com qualidade ruim

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

BMP com qualidade ruim

Mensagem por janio »

Ola a todos,

Tenho um BMP com EXCELENTE qualidade, porem ao exibi-la dentro o meu sistema essa imagem perde MUUUUITO a qualidade.

A pergunta eh: pq isso acontece na hwgui?

Código: Selecionar todos

      @ 670,430 BITMAP oBitmap  ;
        SHOW HBitmap():AddFile( FileLogo ) STRETCH 0  TRANSPARENT ;
        SIZE 120,068
        oBitmap:Anchor := 240
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

BMP com qualidade ruim

Mensagem por sygecom »

Eu aqui uso simplesmente:

@ 17,61 BITMAP oBitmap12 ;
SHOW '' ;
SIZE 639,353

Sem o STRETCH 0
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

BMP com qualidade ruim

Mensagem por asimoes »

Janio,

Porque você não usa a FreeImage? com ela você pode exibir além dos bmp arquivos png, jpg, tiff

A freeimage.dll tem que estar na mesma pasta do seu sistema.

Ex:

Código: Selecionar todos

FUNCTION Imagem(cImagem)
LOCAL  nLeft, nTop, nStyle
LOCAL  oFont

   oFont:=HFont():Add( "Lucida Console", 11) 

   nStyle:= DS_CENTER + WS_VISIBLE 
  
   nLeft:=0
   
   nTop:=0 

   nHandleFile:=hwg_Fi_load( cImagem )
   
   nWidthImg:=hwg_Fi_getwidth( nHandleFile )
   
   nHeightImg:=hwg_Fi_getheight( nHandleFile )
   
   INIT DIALOG oDlg TITLE "" ;
               AT nLeft, nTop ;
               SIZE nWidthImg + 5, nHeightImg + 48 ;
               STYLE nStyle ;
               FONT oFont ;
               CLIPPER ;
               COLOR 13827581  
       
   @ 0, 0 IMAGE oSayMain SHOW cImagem OF oDlg SIZE nWidthImg, nHeightImg 
    
    oDlg:center()
   
   oDlg:Activate()
      
RETURN Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

BMP com qualidade ruim

Mensagem por janio »

O problema eh que preciso REDIMENSIONAR a imagem com ANCHOR conforme a resolução do computador. E nesse redimensionamento a imagem perde qualidade.

O Dialog eh redimensionado conforme a resolução e a imagem segue o tamanho do dialog

Solução?
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

BMP com qualidade ruim

Mensagem por asimoes »

Mas isso pode acontecer com qualquer manipulador de imagem, Se a resolução da imagem é alta e a imagem for redimensionada para menos a perda é imperceptível.
Tentar gerar a imagem com uma resolução maior.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

BMP com qualidade ruim

Mensagem por janio »

aSimoes,

Três coisas:

1-) Onde baixo essa "FreeImage.dll"?

2-) Onde esta a chamada a essa dll no seu exemplo?

3-) Não consegui compilar seu exemplo! Da erro falta das funções hwg_Fi_load, hwg_Fi_getwidth e hwg_Fi_getheight

Jânio

PS: Estou compilando com HWGUI
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

BMP com qualidade ruim

Mensagem por Claudio Soto »

Mirando el código fuente de HWG, encontré que el problema esta en el modo de compresión/expansión (COLORONCOLOR) que usa Alexander al dibujar las imagenes, si cambian en los fuentes en C:

Código: Selecionar todos

SetStretchBltMode( hDC,COLORONCOLOR );
por:

Código: Selecionar todos

   POINT Point;
   
   GetBrushOrgEx (hDC, &Point);
   SetStretchBltMode (hDC, HALFTONE); 
   SetBrushOrgEx (hDC, Point.x, Point.y, NULL);
existe una mejora sensible en la calidad de la imagen comprimida/expandida.

El modo HALFTONE y el algoritmo BiLinear Interpolation son los que uso en la librería gráfica Bos Taurus para cambiar de escala las imagenes.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

BMP com qualidade ruim

Mensagem por Claudio Soto »

Acá les dejo un ejemplo utilizando el modo HALFTONE.
Abran las imagenes originales en el visor de imagenes de Windows y luego ejecuten el archivo .exe y miren las imágenes redimensionadas como se ven.
BT_Demo13.rar
Bos Taurus demo13
(1.28 MiB) Baixado 104 vezes
Aquí se pueden comparar como se ven las imágenes redimensionadas con HALFTONE y con COLORONCOLOR
HALFTONE
HALFTONE
COLORONCOLOR
COLORONCOLOR
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Responder