FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour PNG en recursos incrustados en exe
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
PNG en recursos incrustados en exe
Posted: Mon Nov 10, 2014 09:26 PM
gracias a la info aca indicada
viewtopic.php?f=6&t=26381#p145347
pude incrustar los png en mi exe, y luego usarlos en lugar de los archivos directamente.
mil gracias por tu info manuel.

Code (fw): Select all Collapse
   DEFINE BITMAP oBmpFon
   DEFINE BITMAP oBmpLog

   oBmpFon:hBitmap := FWPng( "PNG_FONDO" )
   oBmpLog:hBitmap := FWPng( "PNG_LOGO"  )

   DEFINE WINDOW oMainW ;
      FROM 01, 01 TO 24, 80 ;
      TITLE "Sistema de control de empleados extranjeros - [ EXPATS ) v1.0 ]"

      oMainW:SetIcon( GetIcon( "EXPATS" ) )
      oMainW:SetMenu( CrearMenu() )
      oMainW:SetFont( oFontW )

      CrearBarraBotones( oMainW )

      DEFINE MSGBAR oMsgBar ;
         OF oMainW          ;
         PROMPT "Seleccione una opcion del menu o de la barra de herramientas." ;
         NOINSET            ;
         KEYBOARD           ;
         2010

   ACTIVATE WINDOW oMainW ;
      ON PAINT Fondo( hDC, oMainW, oBmpFon, oBmpLog ) ;
      VALID MsgNoYes( "Desea salir de la aplicación?", "Seleccione" ) ;
      MAXIMIZED


Code (fw): Select all Collapse
PROCEDURE BmpTiled( hDC, oMainD, oBmpTiled )
   LOCAL nWidth     := oMainD:nWidth()
   LOCAL nHeight    := oMainD:nHeight()
   LOCAL nBmpWidth  := 0
   LOCAL nBmpHeight := 0
   LOCAL nRow       := 0
   LOCAL nCol       := 0
   LOCAL n

   IF HB_IsObject( oBmpTiled ) .and. oBmpTiled:hBitmap != 0
      nBmpWidth  := oBmpTiled:nWidth()
      nBmpHeight := oBmpTiled:nHeight()
      WHILE nRow < nHeight
         nCol := 0
         WHILE nCol < nWidth
            PalBmpDraw( hDC, nRow, nCol, oBmpTiled:hBitmap )
            nCol += nBmpWidth
         END
         nRow += nBmpHeight
      ENDDO
   ENDIF

RETURN

PROCEDURE Fondo( hDC, oWnd, oBmpTiled, oBmpLogo )

   IF HB_IsObject( oBmpLogo ) .and. oBmpLogo:hBitmap != 0
      BmpTiled( hDC, oWnd, oBmpTiled )
      ABPaint( hDC                                       , ;
            ( ( oWnd:nWidth()  - oBmpLogo:nWidth()  ) )/2, ;           //:oWndClient
            ( ( oWnd:nHeight() - oBmpLogo:nHeight() ) )/2, ;           //:oWndClient
            oBmpLogo:hBitmap, 0 )
   ENDIF

RETURN

FUNCTION FWPng( cResname )
   LOCAL hBitmap := 0

   IF FindResource( GetResources(), cResname , 10 ) != 0
      hBitmap := FILoadFromMemory( cResToStr( cResname, 10 ), 10 )
   ENDIF

RETURN hBitmap


Code (fw): Select all Collapse
PNG_FONDO          10             ".\\archivos\\fondo.png"
PNG_LOGO           10             ".\\archivos\\logo.png"

//
// Cursor resources
//
SQLWAIT            CURSOR         ".\\archivos\\crs_sql.cur"

//
// Icon resources
//
0EXPATS            ICON           ".\\archivos\\expats.ico"
EXPATS             ICON           ".\\archivos\\expats.ico"

//
// Manifest resources
//
1                  RT_MANIFEST    ".\\manifest.xml"
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: PNG en recursos incrustados en exe
Posted: Tue Nov 11, 2014 04:59 AM

Carlos,

gracias por compartirlo :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: PNG en recursos incrustados en exe
Posted: Wed Nov 12, 2014 01:34 AM

Saludos, Carlos, los PNG lo colocas solo en ventana principal o tambien en los botones y dialogos, si es asi podrias colocar una imagen haber como se ven y algun codigo sample.? por los momentos consegui una aplicacion manejadora de imagenes que me convierte los PNG a BMP y mantiene el color ALPHA y asi no tengo que hacer mas nada y quedan muy bien en los botones, pero es un proceso adicional, gracias, saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: PNG en recursos incrustados en exe
Posted: Wed Nov 12, 2014 02:19 AM

de momento solo en ventanas y dialogos, en btnbmp he mirado que las sombras las pinta mal, lo mas probable es que la funcion usada para pintar el hBitmap en los btnbmp no sea la adecuada para pintar bitmaps con transparencias.

salu2
carlos vargas

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: PNG en recursos incrustados en exe
Posted: Wed Nov 12, 2014 02:32 AM

Ok Carlos, con este programa IconCool Studio Pro, se hacen muy buenas y rapidas conversiones de PNG que tengan transparencias hacia BMP manteniendo como dije antes el ALPHA y le crea el color de fondo para transparencia en negro, lo hace rapido y ya lo he probado en casi todos los tipos de botones, en la texplorer que me salian las orillas blancas, en los dialogos no necesito colocar la imagen con la clausula TRANSPARENT, de verdad me ha funcionando muy bien, pero como ya comente antes, es un trabajo adicional, aunque a veces me pongo a Export PNG solo para crear mi biblioteca de imagenes para las aplicaciones, seguiremos esperando que se pueda agregar los PNG desde recurso como se hace con los BMP, gracias y saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!

Continue the discussion