JPGs en recursos

JPGs en recursos

Postby Willi Quintana » Tue Oct 05, 2010 7:19 pm

Hola amigos,
Existira alguna manera de almacenar imagenes JPG en una archivo .RES ?? PellesC solo admite bmp y francamente son muy pesados...
Salu2
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: JPGs en recursos

Postby Willi Quintana » Thu Oct 07, 2010 7:07 pm

Algo sobre lo indicado??
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: JPGs en recursos

Postby Antonio Linares » Thu Oct 07, 2010 7:12 pm

Willi,

Puedes incluirlos en el fichero RC de esta forma:

#define RT_RCDATA 10

JPG_1 RT_RCDATA NONDISCARDABLE "test.jpg"

De esa forma se puede almacenar lo que queramos en los recursos. Luego podemos "cargarlo" a una cadena así:
Code: Select all  Expand view

  if FindResource( GetResources(), "JPG_1", 10 )
     cJpg = cResToStr( "JPG_1", 10 )
     MsgInfo( Len( cJpg ) )
  endif
 
regards, saludos

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

Re: JPGs en recursos

Postby Willi Quintana » Sun Oct 10, 2010 4:36 am

Gracia por el tip Antonio, aunque todavia no le doy la talla al jpg en los rc, pero llegare....
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: JPGs en recursos

Postby Daniel Garcia-Gil » Sun Oct 10, 2010 8:17 pm

Willi

Un ejemplo funcional (necesitas freeimage.dll)

Code: Select all  Expand view

#include "FiveWin.ch"

#define RT_RCDATA 10

function Main()

   local oDlg, oHand, oBmp1
   local cJpg

   DEFINE DIALOG oDlg RESOURCE "Test"

   REDEFINE IMAGE oBmp1 ID 110 OF oDlg

   if Len( cJpg := cResToStr( "JPG_1", RT_RCDATA ) ) != 0
      oBmp1:LoadFromMemory( cJpg )
   endif

   ACTIVATE DIALOG oDlg CENTERED

return nil

#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>

HINSTANCE GetResources( void );

HB_FUNC( CRESTOSTR )   // ( cnResName, cType ) --> cResourceBytes
{
   HGLOBAL hglb;
   LPCTSTR lpName;
   LPCTSTR lpType;
   HRSRC  hRes;
   if( HB_ISNUM( 1 ) )
      lpName = ( LPCSTR ) hb_parnl( 1 );
   else
      lpName = ( LPCSTR ) hb_parc( 1 );

   lpType = MAKEINTRESOURCE( hb_parni( 2 ) );
   
   hRes = FindResource( GetResources(), lpName, lpType );
                       
   if( hRes )
   {
      hglb = LoadResource( GetResources(), hRes );
      if( hglb )
         hb_retclen( ( LPSTR ) LockResource( hglb ), SizeofResource( GetResources(), hRes ) );
      else
         hb_retc( "" );
   }
   else
      hb_retc( "" );
}

#pragma ENDDUMP
 


RC
Code: Select all  Expand view

#define RT_RCDATA 10

JPG_1 RT_RCDATA NONDISCARDABLE "olga1.jpg"

test DIALOG 17, 36, 235, 260
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "TestMap"
FONT 8, "MS Sans Serif"
{
  CONTROL "", 110, "TImage", WS_CHILD | WS_VISIBLE, 0, 0, 235, 300
}
 


la hermosa olga
http://www.sitasoft.net/fivewin/bitmaps/olga1.jpg
Image

el exe
http://www.sitasoft.net/fivewin/samples/olga.rar
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: JPGs en recursos

Postby Willi Quintana » Mon Oct 11, 2010 2:34 pm

Agradecido sr..
:lol:
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: JPGs en recursos

Postby karinha » Mon Jun 01, 2015 1:52 pm

Excelente!!
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7190
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: JPGs en recursos

Postby JoseAlvarez » Tue Jun 02, 2015 2:41 am

Saludos, hace pocos dias yo hice la misma consulta, por la misma razon. Amigos del foro me dieron luz para llegarle a la solucion.
no me considera un programador de excelencia, pero a mi manera lo hice asi, te lo explico de la manera mas sencilla posible:
yo uso el workshop para crear las ventanas y dialogos, para los otros recursos uso un archivo de texto plano. En ese archivo puse esto:

#define RT_RCDATA 10
#define RT_RCDATA2 10


JPG_1 RT_RCDATA NONDISCARDABLE "c:/xbapp/safelink/imagenes/jpg/publi01.jpg"
JPG_2 RT_RCDATA2 NONDISCARDABLE "c:/xbapp/safelink/imagenes/jpg/publi02.jpg"

donde le asigno un nombre al recurso y la ubicacion del archivo .jpg

y desde el prg lo llamo asi:

coloco esto luego del # include fivewin.ch

#define RT_RCDATA 10
#define RT_RCDATA2 10


y luego debajo, en los dialogos que lo necesito pongo esto:

Redefine Image oImg1 ID 81 OF oDlgMain adjust on click fNavegar(_JpgWebPublicidad)
if Len( cJpg1 := cResToStr( "JPG_1", RT_RCDATA ) ) != 0
oImg1:LoadFromMemory( cJpg1 )
else
msginfo('Error, no se pudo cargar la imagen '+cJpg1)
endif

funciona simple y al 100%. Si alguno de los foristas puede mejorar este codigo de manera mas profesional, quedaria altamente agradecido..

Saludos y espero que puedas solucionar...
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 723
Joined: Sun Nov 09, 2014 5:01 pm

Re: JPGs en recursos

Postby JoseAlvarez » Tue Jun 02, 2015 2:50 am

se me olvidaba, debes tener la libreria freeimage.dll y la nviewlib.dll al lado del ejecutable de tu aplicacion. A veces con una es suficiente, pero a veces no, no te sabria decir que marca la diferencia entre un equipo y otro, yo las puse las dos y cero problemas. no pesan nada.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 723
Joined: Sun Nov 09, 2014 5:01 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 14 guests