Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   PNG en archivo de recursos (.res) (https://www.clubdelphi.com/foros/showthread.php?t=65997)

jandro 26-01-2010 20:31:49

PNG en archivo de recursos (.res)
 
Hola a todos!!

Necesito saber si se pueden meter ficheros .PNG en los ficheros de recursos (.res) y si es asi cual seria la manera de hacerlo. Si no se pudiera, hay alguna alternativo para incluirlo con el .exe?

Muchas gracias.
Saludos.

delphi.com.ar 26-01-2010 20:46:15

En el archivo de recursos puedes poner como RC_DATA cualquier tipo de archivos. Desconozco que librería estas utilizando para leer archivos PNG, fíjate si esta soporta métodos tales como: LoadFromResourceName o LoadFromResourceID.

Saludos!

jandro 26-01-2010 21:40:02

Hola de nuevo.

Utilizo una libreria llamada PNGComponents 1.0 RC3 que lo que me permite es cargar imagenes PNG en los tipo TImage normales que trae Delphi. Pero no veo la forma de cargarlos desde un fichero de recursos.

Conoces algun componente que si que te lo permita?? llevo tiempo dandole vueltas a esto y no lo consigo...

Gracias!!

delphi.com.ar 26-01-2010 21:50:56

Desconozco esa librería, yo utilizo ya hace años "PNGImage" y me permite hacer cosas como:

Código Delphi [-]
var
  png: TPngObject;
begin
  png := TPngObject.Create;
  try
    png.LoadFromResourceName(hInstance, 'IMAGEN');
    Image1.Picture.Assign(png);
  finally
    png.Free;
  end;

Fíjate si tu librería no tiene métodos similares, o si tiene métodos para cargar imágenes desde streams, entonces podrías utilizar un TResourceStream. Fíjate sino como es la rutina para cargar imágenes desde archivos, si utiliza un TFileStream no debe ser nada difícil crear una nueva para TResourceStream.

Saludos!

jandro 26-01-2010 22:03:37

Solucionado!!!


Muchas gracias por tu ayuda!! Gracias!!

Saludos.

dtomeysoto 26-01-2010 22:23:23

Cita:

Empezado por jandro (Mensaje 351912)
Hola a todos!!

Necesito saber si se pueden meter ficheros .PNG en los ficheros de recursos (.res) y si es asi cual seria la manera de hacerlo. Si no se pudiera, hay alguna alternativo para incluirlo con el .exe?

Muchas gracias.
Saludos.

Hola amigos, disculpen mi ignorancia.
Qué ventajas tiene meter imágenes en archivos de recurso????

delphi.com.ar 26-01-2010 23:03:11

Básicamente yo lo utilizo para el ejecutable no tenga ninguna dependencia, o sea, que todo vaya dentro del EXE.

Saludos!

Neftali [Germán.Estévez] 27-01-2010 09:43:10

Cita:

Empezado por dtomeysoto (Mensaje 351927)
Qué ventajas tiene meter imágenes en archivos de recurso????

Creo que un ejemplo te será útil.

Imagina que necesitas tener disponibe en un formulario una imagen que según una condición muestra al usuario o no; Lo lógico o lo más sencillo es tener un TImage (oculto o no) y ahí tienes cargada esa imagen. OK.

Ahora imagina que en ese mismo formulario debes mostrar al usuario 1 imagen entre 20 posibles, dependiendo de una condición. ¿Cómo lo harías?
* Opción 1: Usar 20 TImage en el formulario. Feo. ;)
* Opción 2: Colocar las 20 imágenes en disco y cargar la que toque segun la condición. OK. Pero tiene el problema de que esas 20 imágenes están disponibles en disco, debes copiarlas con el programa, se pueden borrar, modificar,...

==> En este caso, posiblemente lo mejor sea colocar las 20 imágenes en recursos. Se cargan de forma similar a como se cargarían las de disco, pero van incluídas en el EXE. No se pueden borrar, no se pueden modificar, si copias el EXE van incluídas,...

Espero que el EXE haya sido explicativo.

dtomeysoto 27-01-2010 14:26:37

Cita:

Empezado por Neftali (Mensaje 351956)
Creo que un ejemplo te será útil.

Imagina que necesitas tener disponibe en un formulario una imagen que según una condición muestra al usuario o no; Lo lógico o lo más sencillo es tener un TImage (oculto o no) y ahí tienes cargada esa imagen. OK.

Ahora imagina que en ese mismo formulario debes mostrar al usuario 1 imagen entre 20 posibles, dependiendo de una condición. ¿Cómo lo harías?
* Opción 1: Usar 20 TImage en el formulario. Feo. ;)
* Opción 2: Colocar las 20 imágenes en disco y cargar la que toque segun la condición. OK. Pero tiene el problema de que esas 20 imágenes están disponibles en disco, debes copiarlas con el programa, se pueden borrar, modificar,...

==> En este caso, posiblemente lo mejor sea colocar las 20 imágenes en recursos. Se cargan de forma similar a como se cargarían las de disco, pero van incluídas en el EXE. No se pueden borrar, no se pueden modificar, si copias el EXE van incluídas,...

Espero que el EXE haya sido explicativo.

Muy explícita tu respuesta, gracias....

dtomeysoto 27-01-2010 17:48:14

Cita:

Empezado por delphi.com.ar (Mensaje 351922)
Desconozco esa librería, yo utilizo ya hace años "PNGImage" y me permite hacer cosas como:

Código Delphi [-]var png: TPngObject; begin png := TPngObject.Create; try png.LoadFromResourceName(hInstance, 'IMAGEN'); Image1.Picture.Assign(png); finally png.Free; end;


Fíjate si tu librería no tiene métodos similares, o si tiene métodos para cargar imágenes desde streams, entonces podrías utilizar un TResourceStream. Fíjate sino como es la rutina para cargar imágenes desde archivos, si utiliza un TFileStream no debe ser nada difícil crear una nueva para TResourceStream.

Saludos!

Amigo, podrías decirme de donde descargar ese componente porque en el enlace que proporcionas no veo ningún enlace.

Gracias.

delphi.com.ar 27-01-2010 20:00:45

Esteeee... El link que puse lo obtuve del header de versión que uso, que es la 1.4361 del 04/03/2003, buscando un poco en google "pngimage delphi" encontré algunos headers del 2008, pero en todos lados te mandan a la página que hice referencia.

Por otro lado encontré en Torry.net un paquete con la versión 1.564 del 25/07/2006: PngImage

Saludos!


La franja horaria es GMT +2. Ahora son las 08:58:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi