Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   como guardar un jpg en un *.res (https://www.clubdelphi.com/foros/showthread.php?t=36978)

Patricio 30-10-2006 15:48:26

como guardar un jpg en un *.res
 
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í tienes cómo hacerlo, y aquí puedes descargar un ejemplo.

Patricio 31-10-2006 13:17:16

Ejemplo
 
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

consulta
 
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

Archivo res
 
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

Consulta
 
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

Cita:

Empezado por Patricio
...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/4....htm#resource1

Código Delphi [-]
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

Los sigo molestando
 
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.


La franja horaria es GMT +2. Ahora son las 05:14:15.

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