PDA

Ver la Versión Completa : como guardar un jpg en un *.res


Patricio
30-10-2006, 15:48:26
Hola foro, yo trabajo con delphi 5 e interbase 6, mi pregunta es, tengo un archivo de recursos donde guardo *.bmp y *.ico pero quiero saber si puedo guardar jpg, vi algunos ejemplos que se podia, pero en mi archivo de recursos cuando le pongo de agregar no me aparece el tipo jpg.

Espero sus respuestas. Gracias

Bicho
30-10-2006, 15:53:45
Hola, es probable que tengas que añadirle al uses la unit Jpeg para que te reconozca ese tipo de formato.

Espero te sirva.

Saludos

Neftali [Germán.Estévez]
30-10-2006, 16:05:42
Aquí (http://www.greatis.com/delphicb/tips/lib/resource-includejpeg.html)tienes cómo hacerlo, y aquí (http://www.greatis.com/delphicb/tips/lib/examples/resource-includejpeg.zip)puedes descargar un ejemplo.

Patricio
31-10-2006, 13:17:16
En el ejemplo que me indicas

{$R MyRes.RES}
{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
MyRS: TResourceStream;
begin
try
MyRS:=TResourceStream.Create(HInstance, 'HELP', RT_RCDATA);
Image1.Picture.LoadFromFile('example.jpg');
if Image1.Picture.Graphic is TJPEGImage then
TJPEGImage(Image1.Picture.Graphic).LoadFromStream(MyRS);
finally
MyRS.Free;
end;
end;

cuando lo utilizo en mi proyecto me carga por defecto una rosa, que no se de donde sale, hay algo que tenga que modificar? Gracias

Neftali [Germán.Estévez]
31-10-2006, 13:48:50
Sale del archivo MyRes.RES.
La imagen de la rosa se ha compilado dentro del recurso. Y esa es la que estás viendo.

Si quieres colocar otra magen dentro del recurso crea un fichero .rc con el nombre MyRES.rc y coloca dentro:
HELP RCDATA .\foto.JPG

donde foto.jpg es la imagen jPEG que quieres en el recurso.

Luego compilalo con la línea:
brcc32 MyREs.Rc > Errores.txt

Después de esto te debe generar el fichero MyRes.res de un tamaño aproximado a tu JPG.

Esta parte no está explicada en este proyecto.
Un saludo.

Patricio
31-10-2006, 14:03:27
Gracias de nuevo netfali por tus explicaciones, ahora lo que me indicas lo entiendo perfecto, pero de que manera agrego el jpg al rs una vez creado?

seoane
31-10-2006, 14:07:23
Patricio, si tienes dificultad creando los .res a mano, puede que este programa te resulte útil. Es gratuito y esta hecho en delphi que mas se puede pedir :D

http://www.wilsonc.demon.co.uk/d10resourceeditor.htm

Patricio
31-10-2006, 15:08:03
Yo en este momento estoy utilizando en mi proyecto un archivo de recursos donde guardo los bmp y los ico que utilizo, lo que pasa es que no me da la opción para agregar jpg, por eso es las consultas. yo estoy con Delphi 5.

Y gracias por la respuesta voy a mirar lo que me enviaste

Patricio
06-11-2006, 13:09:11
todabia no pude agregar un jpg al .res. Al respecto de esto cual es la mejor manera de trabajar con imagenes para que nuestro sistema sea lo mas eficiente (rapido) posible, agregarlas a un archivo.res o cargarlas directamente desde un file?

Espero sus opiniones, gracias

Neftali [Germán.Estévez]
06-11-2006, 14:31:05
...Al respecto de esto cual es la mejor manera de trabajar con imagenes para que nuestro sistema sea lo mas eficiente (rapido) posible, agregarlas a un archivo.res o cargarlas directamente desde un file?

Depende de las imágenes, lo que quieras hacer con ellas, el tamaño, los accesos,... No creo que exista una fórmula genérica; Dependiendo de cada caso, te será mejor una opción u otra.

JXJ
16-11-2006, 06:21:55
Este sistema, me funciona mejor

http://www.cacs.louisiana.edu/~mgr/404/burks/language/pascal/uddf/pages/resource.htm#resource1


procedure LoadJPEGfromEXE;

var
MyJPG : TJPEGImage; // JPEG object
ResStream : TResourceStream; // Resource Stream object

begin
try
MyJPG := TJPEGImage.Create;
ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
MyJPG.LoadFromStream(ResStream); // What!? Yes, that easy!
Canvas.Draw(12,12,MyJPG); // draw it to see if it really worked!
finally
MyJPG.Free;
ResStream.Free;
end;
end; // procedure

Patricio
23-11-2006, 18:57:34
Ayer baje el XN Resource Editor, cree una archivo calidad.res con un jpg dentro llamado "casa", ahora probe lo que me indican y no pude lograr que cargue el jpg, me da un error. En que lugar se le dice el nombre de la imagen alocada en el recurso?
Saludos y disculpen

Neftali [Germán.Estévez]
24-11-2006, 10:22:04
En el CreateFromID, el ID es el número del recurso (de ahí en ...fromID); Si quieres hacerlo por nombre utiliza el Create, que es caso igual, pero pasas la constante de tipo String. revisa en la ayuda de delphi los métodos de la clase TResourceStream.

Coco_jac
22-03-2007, 21:34:43
Disculpen mi ignorancia pero que ventajas ofrece utilizar utilizar estos archivos .RES
Tengo un problema en mi aplicacion, utilizo imagenes asi como iconos en mis ventanas y el .EXE se vuelve pesado y me gustaria de alguna manera poder minimizar esto.

Gracias anticipadas.

JXJ
23-03-2007, 02:52:13
la ventaja es que desde tu programa solo llamas a la imagen
que esta en tu archivo .res.

por ejemplo,
tu logo, lo agregar a tu archivo .res
y lo puedes llamar, desde
el spashscreen
la forma de acerca de..
una forma al cerrar tu aplicación, al estilo, espere mientra se
termina de cerrar el programa, mostrando tu logo.

tu logo es sacado, en tiempo de ejecución,
desde el archivo .res y cargado al timage de alguna
de las tres forms.
y asi no tienes que estar, agregando tres veces tu logo
por cada form
en vez de agregar tu logo 3 veces, tulogo.jpg 200k
solo lo agregas una.

otra forma, es que crees dlls, y ahi metas imagenes
iconos, y que sean cargados, por tu exe principal
asi tu exe principal, no crecera por el tamaño de las imagenes
e iconos.