Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Imagenes en archivos.

Hola, se puede meter imágenes y texto en un archivo binario, si así cuales son los pasos. Gracias
Responder Con Cita
  #2  
Antiguo 12-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
MAXIUM, tal vez las venerabla DLL's puedan serte util
Responder Con Cita
  #3  
Antiguo 12-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Oh si, como no se me habian ocurrido antes. Pero el problema esta en que una DLL es facil de "desarmar", la idea es que nadie pueda acceder a su contenido sin el código adecuado, algo muy similar a la estructura de un clásico archivo binario.
Responder Con Cita
  #4  
Antiguo 12-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Mmm... tambien podrías usar una .bpl compilada como runtimeonly y la adjuntas a tu ejecutable.
Responder Con Cita
  #5  
Antiguo 12-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
tambien he buscado información al respecto, pero no me sale, no se como usarlas en tiempo de ejecución.
Responder Con Cita
  #6  
Antiguo 12-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Yo tampoco.
Responder Con Cita
  #7  
Antiguo 12-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Intentare con BlockWrite, pero tengo poca experiencia, ojalas salga algo de todo esto además de dolor de cabeza
Responder Con Cita
  #8  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo primero que se me ocurre, bueno, lo primero que se me ocurre es que tú y yo debemos ser familiares lejanos... o cercanos.

Y, lo segundo que se me ocurre... es trabajar con archivos comprimidos (Zip, por ejemplo). Desde Delphi es perfectamente posible trabajar con ellos. Pueden contener literalmente lo que quieras, incluso distintos archivos, juntos, pero, no revueltos. Pueden tener "contraseña", pueden estar cifrados, es posible añadir o eliminar archivos "en tiempo de ejecución", en fin, no sé cómo lo ves.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #9  
Antiguo 12-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Y ¿él quien es?
Responder Con Cita
  #10  
Antiguo 12-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Se llama DEC, es una buena persona

Buena idea, además del passord, podría encriptar tanto las imagenes como los archivos de texto que contengan, ya que a pesar de estar con clave, la descompresión se realiza en la carpeta TEMP, es decir, al ejecutar la aplicación, esta abre el archivo zipeado con mi super últra secreta clave y descomprime el contedio en la TEMP del sistema la cual es accesible para cualquiera, obvio que usuario vulgar desconoce esto, ops! me acabo de delatar

Pero es una buena idea, probare los tiempod e respuestas con otros compresores gratuitos como los CAB que son nativos en Windows y solo necesito llamar las aplicaiones externas del sistema en modo silecioso. Gracias DEC
Responder Con Cita
  #11  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¡Y es una bueenaa persooooonaaaaoaoaoa! (Léase cual flamenco cantando por soleares)

No sé si eso de que los archivos comprimidos utilizan la carpeta temporal de Windows es realmente siempre así. Creo recordar que en algún componente que he usado (Turbo Power Abbrevia) esto era algo opcional. Sea como fuese, siempre que no supusiese una merma en el rendimiento, y, tal como dices, los archivos pueden estar cifrados, de modo que en caso de que llegasen al disco duro, estarían cifrados, y tú desde tu aplicación podrías descifrarlos al momento de usarlos. Aunque igual en esto no estoy tampoco del todo en lo cierto, porque, si tú quieres usar una imagen (LoadFromFile()) habrás de tener un archivo "en claro", no cifrado. Tal vez pase el tema por tratar de evitar la carpeta temporal, y también por cifrar y descifrar "en memoria" (igual esto es una gilipollez) y trabajar de ese modo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 12-03-2009
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
cifrar y descifrar "en memoria"

¿eso como se hace?
Responder Con Cita
  #13  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tienes razón, no suena muy descriptivo eso. Pero, es que no me sabré explicar de otro modo. Se trataría, básicamente, de que el archivo "en claro" no residiera nunca en el disco duro. Cargar el archivo cifrado en una variable (en memoria) y descifrarlo ahí. Creo que los componentes que he venido usando para estos menesteres permiten algo así, pero, ahora mismo tampoco estoy seguro al cien por cien.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #14  
Antiguo 12-03-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.273
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Y utlizando Streams?
(1) Cargar en un Stream la imagen.
(2) Guardar el tamaño
(3) Añadir el Texto
(4) Guardar el tamaño
(5) Aplicarle algoritmo de encriptación con key
(6) Guardarlo a disco.

Eso es la teoría.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #15  
Antiguo 12-03-2009
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
tantos MAXIUM ?????????,
Responder Con Cita
  #16  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Ya ves, hay personas a las que que no basta con tener doble personalidad.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #17  
Antiguo 12-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Gracias, vamoS a probrar.
Responder Con Cita
  #18  
Antiguo 12-03-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.273
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A ver no estoy muy puesto en el tema, pero lo que quería explicar es más o menos esto. Seguro que es optimizable, ya digo que no estoy muy puesto, pero así creo que se entiende mejor:

(1) Poner un TImage en el form, con un bitmap.
(2) POner un memo con un texto.
(3) Ejecutar el código siguiente.

El resultado es un fichero en disco con:

10 dígitos correspondiente al tamaño del memo
10 dígitos correspondientes al tamaño de la imagen
El contenido del memo
El contenido de la imagen

Si lo abrís con un editor hexadecimal se ve perfectamente.
Si antes de guardar se le aplica un algoritmo y listo.

Con los dos tamaños (ocupan cada uno 10 posiciones) se debería poder hacer el paso contrario sin problemas.

Código Delphi [-]
var
  i:Integer;
  s:Int64;
  Str:String;
  buff: array [0..9] of byte;
  f1, F2: TFileStream;
  s1:TMemoryStream;
  buffmemo: array [0..4000] of byte;
  sMemo:Integer;
begin

  f1 := TFileStream.Create('.\I.dat', fmCreate);
  f2 := TFileStream.Create('.\M.dat', fmCreate);
  s1 := TMemoryStream.Create;


  // MEMO
  Memo1.Lines.SaveToStream(f2);
  s := sizeof(f2);
  for i := 0 to Min(4000, Length(Memo1.Lines.TExt)) do begin
    buffmemo[i] := Ord(Memo1.Lines.Text[i + 1]);
  end;
  sMemo := i;
  Str := DupeString('0', 10) + IntToStr(sMemo);
  Str := Copy(Str, Length(Str) - 10 + 1, 10);

  // Escribir Tamaño Memo
  for i := 0 to 9 do begin
    buff[i] := Ord(Str[i + 1]);
  end;
  // Escribimos el tamaño
  f1.WriteBuffer(buff, 10);

  // Imagen
  Image1.Picture.Bitmap.SaveToStream(s1);

  s := s1.Size;
  Str := DupeString('0', 10) + IntToStr(s);
  Str := Copy(Str, Length(Str) - 10 + 1, 10);

  // Escribir Tamaño imagen
  for i := 0 to 9 do begin
    buff[i] := Ord(Str[i + 1]);
  end;
  // Escribimos el tamaño
  f1.WriteBuffer(buff, 10);


  // escribir el memo
  f1.WriteBuffer(buffmemo, sMemo);
  // escribir la imagen
  Image1.Picture.Bitmap.SaveToStream(f1);

  FreeAndNil(s1);
  FreeAndNil(f2);
  FreeAndNil(f1);
Archivos Adjuntos
Tipo de Archivo: zip Imagenes Texto Stream.zip (5,5 KB, 10 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #19  
Antiguo 13-03-2009
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Oh! excelentisimo. Gracias Neftali, lo voy a estudiar.

Realizar el proceso inverso no creo que me complique, pero tambien quiero ver como meter 2 imagenes de distinto tamañano en un solo archivo o el memo y la imagen en un solo fichero resultante.

Muchisismas gracias.
Responder Con Cita
  #20  
Antiguo 13-03-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.273
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por MAXIUM Ver Mensaje
pero tambien quiero ver como meter 2 imagenes de distinto tamañano en un solo archivo o el memo y la imagen en un solo fichero resultante.
Bueno, no tiene más complicación que copiar un trozo de código de ahí para la segunda imagen o seguir el mismo sistema.
Al principio se guardan los dos tamaños y luego los dos objetos, pero puedes variar esa estructura a tu gusto.

* Guardar número de obtejos, luego los tamaños y luego los objetos.
* Números de objetos y luego tamaño y tipo de cada uno de ellos y al final los objetos
* ...

La combinación que desees.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Abrir archivos con nombres de archivos de otra codificación. matabyte Windows 2 01-05-2008 01:40:13
Atributo de archivos de imagenes (JPG) Neeruu Varios 4 26-02-2008 05:29:28
imagenes pablo Gráficos 2 23-05-2004 12:12:09
Imagenes Aztaroth C++ Builder 1 03-04-2004 02:38:29


La franja horaria es GMT +2. Ahora son las 10:24:30.


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
Copyright 1996-2007 Club Delphi