PNG en recursos incrustados en exe

PNG en recursos incrustados en exe

Postby carlos vargas » Mon Nov 10, 2014 9: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: Select all  Expand view

   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: Select all  Expand view

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: Select all  Expand view

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)
User avatar
carlos vargas
 
Posts: 1683
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: PNG en recursos incrustados en exe

Postby Antonio Linares » Tue Nov 11, 2014 4:59 am

Carlos,

gracias por compartirlo :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: PNG en recursos incrustados en exe

Postby joseluisysturiz » Wed Nov 12, 2014 1: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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: PNG en recursos incrustados en exe

Postby carlos vargas » Wed Nov 12, 2014 2: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)
User avatar
carlos vargas
 
Posts: 1683
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: PNG en recursos incrustados en exe

Postby joseluisysturiz » Wed Nov 12, 2014 2: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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 91 guests