Página 1 de 1

BMP com qualidade ruim

Enviado: 29 Nov 2015 18:52
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

BMP com qualidade ruim

Enviado: 30 Nov 2015 12:30
por sygecom
Eu aqui uso simplesmente:

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

Sem o STRETCH 0

BMP com qualidade ruim

Enviado: 30 Nov 2015 17:54
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

BMP com qualidade ruim

Enviado: 04 Dez 2015 20:37
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?

BMP com qualidade ruim

Enviado: 04 Dez 2015 20:54
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.

BMP com qualidade ruim

Enviado: 25 Abr 2016 22:06
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

BMP com qualidade ruim

Enviado: 26 Abr 2016 01:10
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.

BMP com qualidade ruim

Enviado: 26 Abr 2016 01:45
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