PDA

Ver la Versión Completa : Como instalar el paquete grafico ImageFileLib


elistraus
14-09-2014, 07:15:08
Saludos a la comunidad,
Me estoy iniciando en Delphi y estoy haciendo un proyecto de cero, al colocar una imagen al formulario no me da la opción para colocar archivos *.png, por lo que en otro hilo http://www.clubdelphi.com/foros/showthread.php?t=15959, recomiendan instalar un paquete llamado ImageFileLib, ya lo descargue pero me pueden ayudar a como instalarlo, ya que parece que es distinto como al instalar componentes.

En el archivo vienen varias carpetas y no por cual empezar

Saludos desde chile :D

radenf
14-09-2014, 14:38:22
Hola elistraus:

¿Qué versión de Delphi utilizas?
Porque a partir de D2007 el soporte para archivos .png viene incorporado y desde D2010 se incluye TWicImage, que soporta múltiples formatos de archivos gráficos, incluyendo .png

TWICImage is an encapsulation of a Microsoft Windows Imaging Component.
A TWICImage is an encapsulation of a Microsoft Windows Imaging Component. A WIC image is a container that allows loading a large variety of image formats. You can use an instance of TWICImage to load, store, and display Bitmap, JPEG, PNG, GIF, TIFF, or any other file format registered using the WIC API.
TWICImage is only available on Windows XP SP3 or higher operating systems and relies on DirectX runtime.

Nunca he utilizado ImageFileLib y por los archivos que trae yo tampoco sabría como instalarlo, no sé si creando un nuevo package e insertando los archivos .pas de la carpeta DelphiSource.
Para los formatos no soportados por Delphi yo utilizo TWICImage o la librería Vampyre, que puedes revisar en este LINK (http://imaginglib.sourceforge.net/index.php?page=down)

Saludos y ojalá te sirva.

elistraus
14-09-2014, 18:27:58
Gracias por responder randef,
La versión que ocupo es Delphi 7 enterprice en windows 7 y estoy siguiendo un video tutorial donde el expositor programa en D7 igual, y el tiene soportado los archivos .png al cargar una imagen, ahí me dí cuenta que no tengo soportado los .png

Haber si alguien mas ha arreglado o ha sabido como arreglar esto, ya que por lo que leí las imágenes en .png se hacen mas ligeros los ejecutables

Saludos desde chile :D

radenf
14-09-2014, 21:14:15
Estimado elistraus:

Prueba con el componente TPNGImage de Gustavo Daud.
Puedes descargarlo desde este LINK (http://www.torry.net/pages.php?id=107)
También puedes revisar este LINK (https://www.google.cl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&cad=rja&uact=8&ved=0CDwQFjAE&url=http%3A%2F%2Fwww.experts-exchange.com%2FProgramming%2FLanguages%2FPascal%2FDelphi%2FQ_27284549.html&ei=VN0VVNHPK9XhoAS6toH4Bg&usg=AFQjCNFM9EulNHXpNN2VXgX6xS_l22rF-g) que trata tu problema.

Salu2

nlsgarcia
14-09-2014, 21:26:29
elistraus,


...estoy haciendo un proyecto (Delphi 7 Enterprice en Windows 7)...al colocar una imagen al formulario no me da la opción para colocar archivos *.png...
:rolleyes:

Revisa esta información:

http://i42.photobucket.com/albums/e305/nlsgarcia/PNGImage_zps1e011355.jpg

Tomado de : Useful Delphi packages (http://proger.i-forge.net/Useful_Delphi_packages/71R)


...recomiendan instalar un paquete llamado ImageFileLib, ya lo descargue pero me pueden ayudar a como instalarlo...

:rolleyes:

Revisa esta información:

http://i42.photobucket.com/albums/e305/nlsgarcia/ImageLib_zpsf18e467d.jpg

Tomado de : ImageFileLib (http://sourceforge.net/projects/imagefilelib/)

Te comento:

1- ImageFileLib y PNGImage no son componentes, son librerías de manejo de imágenes.

2- Para poder usar tanto ImageFileLib como PNGImage en Delphi, debes incluir el directorio de units (.pas) de ambas en : Tools->Enviroment Options->Library->Library path, como se muestra en la siguiente imagen:

http://i42.photobucket.com/albums/e305/nlsgarcia/Library_Path_Delphi_zps97292d7e.jpg

Espero sea útil :)

Nelson.

radenf
14-09-2014, 22:16:02
Muchas gracias Nelson por aclarar el punto de las librerías, con eso no debiera costar nada instalar ImageLib, que era lo que inicialmente preguntaba elistraus, bastando asignar el path de la librería.
El link de Useful Delphi Packages no se lo quise sugerir, porque a mí me dió unas advertencias de privacidad y opté por cerrar la página.

Salu2

elistraus
15-09-2014, 00:57:15
Gracias nlsgarcia,
ese era el problema entonces, que son librerias y no componentes, ya me sonaba raro :D, sabia que tenia otro tratamiento,,,
Con esto debería solucionar mi problema, lo voy a realizar y lo comento para ver como me fue

Gracias a los 2 por dedicar su tiempo

Saludos desde chile :D

elistraus
15-09-2014, 04:50:11
Nelson,
He puesto la carpeta completa en Lib y le he agregado el path de nombre delphiSource ya que dentro de ella están todos los .pas


https://imagizer.imageshack.us/v2/735x352q90/631/dpT7eC.png


Pero, parece que a lo mejor me falta algo como compilar porque no me carga el soporte a png, quiero agregar que para colocar la imagen he ocupado el componente additional que viene en la paleta de los componentes

https://imagizer.imageshack.us/v2/735x412q90/908/RGAErw.png


Todavía no puedo ver la luz :(

Saludos desde chile :D

nlsgarcia
15-09-2014, 07:20:58
elistraus,


...He puesto la carpeta completa en Lib y le he agregado el path de nombre delphiSource...parece que a lo mejor me falta algo...no me carga el soporte a png...

:rolleyes:

Te sugiero, no colocar ningún componente o librería dentro del directorio de Delphi en 'C:\Program Files', una mejor opción es crear un directorio de componentes y librerías específicamente para dichos casos, por ejemplo : 'C:\DelphiAddOns'

Revisa este código:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtDlgs, StdCtrls,
PNGLoader, LinarBitmap, ExtCtrls, FileUtils;

type
TForm1 = class(TForm)
Button1: TButton;
OpenPictureDialog1: TOpenPictureDialog;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

// Inicializa la aplicación
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Stretch := True;
Caption := 'Test ImageFileLib';
end;

// Permite cargar y visualizar imágenes PNG en un componente TImage
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenPictureDialog1.Filter := 'All images PNG | *.png' + BitmapLoaders.GetLoadFilter;
if OpenPictureDialog1.Execute then
with TLinearBitmap.Create do
try
Image1.Picture := nil;
LoadFromFile(OpenPictureDialog1.FileName);
AssignTo(Image1.Picture.Bitmap);
Caption := 'Test ImageFileLib : ' + OpenPictureDialog1.FileName;
finally
Free;
end;
end;

end.

El código anterior en Delphi 7 bajo Windows 7 Professional x32, permite cargar y visualizar imágenes PNG en el componente TImage por medio de la librería ImageFileLib, como se muestra en las siguientes imágenes:

http://i42.photobucket.com/albums/e305/nlsgarcia/ImageLib-1_zpse5a58262.jpg

http://i42.photobucket.com/albums/e305/nlsgarcia/ImageLib-2_zps5e4a7a0a.jpg

Nota: Te sugiero revisar la carpeta Demo que viene con la librería ImageFileLib, la cual trae un ejemplo que permite cargar y visualizar diferentes formatos de imágenes, por medio de sus unidades especializadas : ICOLoader, JPEGLoader, PNGLoader, HIPSLoader, BMPLoader, PCXLoader, WMFLoader.

Espero sea útil :)

Nelson.

elistraus
15-09-2014, 08:05:25
Buenas nlsgarcia,
bueno ya deje la cagada ya al parecer :), me puse a buscar en la web y descubrí que para cargar la librería tenía que hacer un nuevo proyecto de tipo package ya que en el directorio de DelphiSource solo vienen los units, esto de la librería ImageFileLib,

de principios lo hice así y me dio error al compilar, me faltaba un componente GifImagen si mal me recuerdo, así lo deje de lado y compile PNGImage-156, abrí mi proyecto y me dio error al colocar la imagen png, error de memoria (no lo anoté :P)

En la documentación de PNGImage dice que se puede utilizar un utilitario para compilar librerias de nombre dclusr.dpk, así que ocupe ese y volvi a compilar ImageFileLib y me dio un error con ICOLoader así que decidí remover el .pas del ICOLoader y compile e instalé :D

ahora cuando abro D7 me da un mensaje

"Runtime error 216 at 40005A0C"

le doy aceptar abro mi proyecto y veo si puedo cargar archivos png y en el listado de los archivos soportados me salen
"All(*.mng, *.png, *.pcx, *.hips, *.hip, *.gif, *.png, *jpg, *jpge, etc)"

me carga la imagen png en el formulario sin problemas hecho a correr el proyecto y va bien, pero creo que a lo mejor instalé mal el PNGImagen y por eso me da el error al ejecutar D7 :D

Como lo puedo eliminar, yo creo que eliminándolo se va el error no??

Hey,,, Gracias por tu ayuda
Pero metiendo mano se aprende, igual aprendí algo nuevo sobre la compilación de las librerías y tienes toda la razón voy a dejar los componentes y librerías en carpetas apartes de las de D7,,,


Saludos desde chile :D

nlsgarcia
15-09-2014, 08:23:33
elistraus,


...me puse a buscar en la web y descubrí que para cargar la librería tenía que hacer un nuevo proyecto de tipo package ya que en el directorio de DelphiSource solo vienen los units, esto de la librería ImageFileLib...

:confused:

...volví a compilar ImageFileLib...ahora cuando abro Delphi 7 me da un mensaje..."Runtime error 216 at 40005A0C"...¿Como lo puedo eliminar?, yo creo que eliminándolo se va el error ¿no?...

:cool:

Te comento:

1- Revisa todo lo mencionado en el Msg #5 sobre la inclusión del, path de las librerías ImageFileLib y PNGImage a Delphi.

2- Revisa y prueba el ejemplo del Msg #9 el cual es, totalmente funcional según se muestra en las imágenes :rolleyes:

3- Para eliminar un paquete debes ir a : Component->Install Packages->Design packages, buscar el paquete a eliminar y presionar remove.

Nota: Las librerías ImageFileLib y PNGImage, son librerías de imagenes independientes una de la otra, no se requiere que estén instaladas ambas para el funcionamiento individual de ninguna de estas.

Suerte en tu proyecto ^\||/

Nelson.