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 20-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Programa Criptografico

Después de que diniremix publicara su programa para ocultar información en diferentes archivos gráficos, volvió a resurgir mi interés por la esteganografia y mas concretamente por como ocultar información dentro de un archivo jpeg.

Debido al método de compresión de las imágenes jpeg resulta muy difícil, sino imposible, ocultar información dentro de la propia imagen sin correr el riesgo de que la información se pierda durante este proceso. Así que me centre mas en el formato del propio archivo jpeg, sin entrar en muchos detalles, los archivos jpeg están divididos en segmentos y cada uno de estos segmentos contiene una información concreta. Uno de estos segmentos esta destinado a incluir comentarios (hasta 64Kb) , este es el que voy a utilizar, aunque también existen los llamados segmentos de aplicación destinados a que programas como photoshop o las propias cámaras digitales incluyan información sobre la imagen, utilizar uno u otro solo supone cambiar una línea dentro del código.

Con respecto a la parte criptográfica tampoco quise liarme mucho así que utilice la criptoapi del propio Windows, más concretamente el algoritmo RC4 que puede que no sea el más seguro del mundo pero si no nos persigue la CIA se puede considerar suficientemente seguro. (En windows98 parece que no funciona la encriptación, aunque tampoco voy a pararme a averiguar porque)

Bueno, echarle un vistazo al código haber que os parece, puede que a alguien le resulte útil alguna de la funciones que implemento, sobre todo las que utilizo para leer y escribir comentarios dentro del archivo jpeg o la que elimina los segmentos de comentario y aplicación de un archivo jpeg (limpia la imagen de información innecesaria). Si los queréis usar en vuestros programas adelante, cogerlos sin ningún problema.

Bueno aquí os dejo el código, si tenéis alguna pregunta, sugerencia, o crítica ponerla aquí. Y voy a dejar de escribir que me esta quedando un mensaje inmenso

Edito: Cambie el archivo zip, para corregir un pequeño error en la rutina de insertar comentario.
Archivos Adjuntos
Tipo de Archivo: zip Esteganos.zip (8,0 KB, 82 visitas)

Última edición por seoane fecha: 24-05-2006 a las 13:49:50.
Responder Con Cita
  #2  
Antiguo 20-05-2006
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,

¡Bajaaaando! Muchas gracias Seoane.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 20-05-2006
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,

He hechado un vistazo al programa muy por encima (el código se me hace muy complejo para mí, al menos ahora, que estoy en otros menesteres...) pero, qué decir, ha compilado a la primera perfectamente, ha funcionado como se espera sin ningún problema, y, salvo pequeños detalles sin importancia para lo que nos ocupa, me ha parecido un buen trabajo, algo curioso y que puede admirar.

Espero que no te importe que estrenara este WebLog contigo. Otra vez gracias.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 20-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Me siento muy honrado dec, y me alegro mucho de que te haya gustado.
Responder Con Cita
  #5  
Antiguo 20-05-2006
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,

Eres tú quien merece agradecimiento Seoane. Pero no sigamos por aquí o no terminaremos nunca.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 21-05-2006
Avatar de diniremix
diniremix diniremix is offline
Miembro
 
Registrado: abr 2006
Ubicación: Negaverso
Posts: 44
Poder: 0
diniremix Va por buen camino
saludos a tod@s en el foro

amigo seoane como tal vez t diste cuenta con ETI (si lo bajaste y lo probaste ) el trabajar con imagenes no es tan dificil (bueno despues de unas mil tazas de cafe , 5 mil cigarrillos y como una semana sin dormir )

es decir este tratamiento (el d las imagenes) lo puedes aplicar a casi (casi...) cualquier tipo de archivo sin importar cual..

ahora...tengo una duda sobre algo q dijiste:

Cita:
originalmente escrito por seoane
volvió a resurgir mi interés por la esteganografia y mas concretamente por como ocultar información dentro de un archivo jpeg.
vivo a veces en la luna q es esteganografia?...
ah otra cosa..

Cita:
originalmente escrito por seoane

Debido al método de compresión de las imágenes jpeg resulta muy difícil, sino imposible, ocultar información dentro de la propia imagen sin correr el riesgo de que la información se pierda durante este proceso.
como sabras las imagenes jpeg ó jpg (q es la misma vaina solo q depende el S.O. se Tratan solo con 3 en vez de 4 letras para las extensiones...)
estan ya compresos en la wikipedia te lo explican un poco mejor. y el ocultar el texto en la propia imagen se puede solo q la imagen al final parece q le hubiera dado sarampion

sobre esto.
Cita:
originalmente escrito por seoane

Con respecto a la parte criptográfica tampoco quise liarme mucho así que utilice la criptoapi del propio Windows, más concretamente el algoritmo RC4 que puede que no sea el más seguro del mundo pero si no nos persigue la CIA se puede considerar suficientemente seguro. (En windows98 parece que no funciona la encriptación, aunque tampoco voy a pararme a averiguar porque)
m parece muy interesante pero cabe anotar q guindow$ y M$ son un poco tanto "jodidos" (por no decir malas palabras y q m expulsen....) con sus "vainas" yo opino (y solo eso) q deberias crear tus propios sistemas de cifrado ya q nop solo aprenderias sip nop tambien podrias liberar (en un futuro..) el codigo y nop tendras ningun problema ya q es originalmente tuyo.
t lo digo ya q tuve una mala experiencia.

antes d q ETI se llamara ETI (valga la redundancia)

se llamaba "MsnPicture" algo como "mensajes en las imagenes"
hasta ahí todo bien pero como la palabra Msn esta protegida por una patente de M$ m jodieron en un foro cuando decidi publicar su version 2.0 asip q tuve q cambiarle el nombre al proyecto
decidí peliar pero nop tenia tanta plata para demandar a M$

a d + sip t interesa en pocos dias terminare ETI 2.0 y publicare el proyecto y el SRC de la version 1.0 y os podeis mirar la parte de encriptacion...
bueno.. pero quien soy yo para decirte solo haz lo q quieras pero con cuidado
__________________
Diniremix ;)
Responder Con Cita
  #7  
Antiguo 21-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
amigo diniremix

Cita:
como tal vez t diste cuenta con ETI (si lo bajaste y lo probaste ) el trabajar con imagenes no es tan dificil (bueno despues de unas mil tazas de cafe , 5 mil cigarrillos y como una semana sin dormir )
Tu programa, segun pude ver, solo coloca la informacion pegada al final del archivo jpeg. De esta manera el archivo deja de cumplir con el estandar, ya que estas modificando su estructura como a ti te da la gana. Tienes suerte de que la mayoria de los programas que lee las imagenes jpeg ignora esa informacion, pero no tienen porque hacerlo incluso podrian entender que el archivo esta corrupto, o tener cualquier otro efecto no deseado.

Cita:
vivo a veces en la luna q es esteganografia?...
http://es.wikipedia.org/wiki/Esteganografía

Cita:
estan ya compresos en la wikipedia te lo explican un poco mejor. y el ocultar el texto en la propia imagen se puede solo q la imagen al final parece q le hubiera dado sarampion
Por supuesto que se que jpg y jpeg son dos extensiones del mismo tipo de archivo, y yo me referia a que en otro formatos graficos sin compresion o con compresion sin perdida se puede ocultar la informacion dentro de la propia imagen sin que este cambio sea apreciable, de echo existen multiples algoritmos diseñados a tal fin, los trata una rama de la criptografia que se llama esteganografia no se si te suena.

Cita:
m parece muy interesante pero cabe anotar q guindow$ y M$ son un poco tanto "jodidos" (por no decir malas palabras y q m expulsen....) con sus "vainas" yo opino (y solo eso) q deberias crear tus propios sistemas de cifrado ya q nop solo aprenderias sip nop tambien podrias liberar (en un futuro..) el codigo y nop tendras ningun problema ya q es originalmente tuyo.
Utilizo la API criptografica que microsoft pone a disposicion de los programadores para que hagan sus aplicaciones, decir que tengo que pedir permiso para usarla es como decir que tengo que pedir permiso para crear una ventana o usar un boton ya que estos tambien se crean con llamadas a las api.

Última edición por seoane fecha: 23-05-2006 a las 16:32:42.
Responder Con Cita
  #8  
Antiguo 21-05-2006
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,

Cita:
Empezado por Seoane
Y no me lo estoy tomando a mal, pero no intentes darme clases de algo de lo que realmente no sabes apenas nada ...
En mi opinión (a lo que se ve) no creo que exista ninguna intención por parte de Diniremix de darte clases Seoane. ¡Venga la paz!
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 21-05-2006 a las 05:46:42.
Responder Con Cita
  #9  
Antiguo 21-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Tienes razon la ultima frase sobraba, pero me deje llevar.
Responder Con Cita
  #10  
Antiguo 21-05-2006
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Yo no sé nada de criptografia, sólo digo que ya existe la compañia Steganos (con programas criptográficos también), ten cuidado a ver si te van a "joder"...
EDICIÓN: "el programa" por "la compañia"
__________________
l2prog.co.nr

Última edición por [Gunman] fecha: 21-05-2006 a las 14:21:23.
Responder Con Cita
  #11  
Antiguo 21-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
No te preocupes el codigo solo era un ejemplito, no creo que nadie se moleste aunque demuestra mi poca imaginacion a la hora poner nombre a los programas. Le podia haber puesto "Mensajes ocultos" pero me parecia el nombre de un accesorio de la barbie (barbie mensajes secretos)

Por cierto, aprovecho para decir algo que creo que no deje claro, esto no intenta ser un programa para distribuir. Solo es una demostracion de como escribir informacion en el segmento destinado a comentarios dentro de un archivo jpg. Por eso pongo el codigo y no el ejecutable, por eso la presentacion del programa esta tan poco cuidada (solo me he centrado en la funciones de leer y escribir) y por eso no me molesto en hablar de licencias, copyright, etc ... solo queria compartir el codigo con otros programadores.
Responder Con Cita
  #12  
Antiguo 21-05-2006
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Todo aclarado!
Cita:
Empezado por seoane
solo queria compartir el codigo con otros programadores.
Me parece fantástico que compartas tu conocimiento con nosotros, yo si supiese algo haría lo mismo y siempre que hago(a) algo también os lo comunico(aré).
__________________
l2prog.co.nr
Responder Con Cita
  #13  
Antiguo 22-05-2006
Avatar de diniremix
diniremix diniremix is offline
Miembro
 
Registrado: abr 2006
Ubicación: Negaverso
Posts: 44
Poder: 0
diniremix Va por buen camino
hola a tod@s
salu2
Cita:
originalmente escrito por dec
En mi opinión (a lo que se ve) no creo que exista ninguna intención por parte de Diniremix de darte clases Seoane. ¡Venga la paz!
amig@s mi@s d mi par t disculpas a tod@s los ofendid@s por todas estas locura s
amig@ seoane gracias a la cita del amigo [Gunman]

Cita:
originalmente escrito por [Gunman]
Me parece fantástico que compartas tu conocimiento con nosotros, yo si supiese algo haría lo mismo y siempre que hago(a) algo también os lo comunico(aré).
he decidido hacer lo mismo q el o tú, sabes eres bien listo y creo (creo solamente!!) q seria bueno (magnifico) seguir el ejemplo q cita el amigo [Gunman].

a tod@s los del foro salu2 y gracias por dejar aprender un poco de ustedes cada dia

"es licito aprender hasta del enemigo"
bytes cuidense
__________________
Diniremix ;)
Responder Con Cita
  #14  
Antiguo 23-05-2006
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Bueno, ya he instalado el Delphi y he probado el programa Esteganos...
Y ya que estamos hablando de compartir conocimiento... Cómo le haces una paella a un aprendiz y no le pones la receta? Por favor, explicanos el código seoane, a los analfabetos como yo. El programa con el código comentado y enlaces donde encontrar información extra seria de gran untilidad, pero bueno...
__________________
l2prog.co.nr
Responder Con Cita
  #15  
Antiguo 23-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Lo de no comentar el codigo es una fea costumbre que tengo, pero estoy encantado de comentarlo si esta interesado. Para no volver a subir el proyecto voy a ir poniendo aqui varias de las funciones ya comentadas:


Estas funciones manejan el archivo JPEG una vez lo tenemos en un stream
Código Delphi [-]
// Esta funcion lee el comentario de un archivo JPEG.
// El archivo JPEG esta dividido en segmentos con el siguiente formato
// Identificador (2Bytes) + Longitud (2Bytes) + Contenido
// Asi que vamos leyendo segmento a segmento hasta encontrar el que nos interesa
function LeerCom(Stream: TStream): string;
var
  Buffer: array[0..$FFFF] of Char;
  Header: array[1..4] of byte;
  Size: Integer;
begin
  // Nos colocamos al principio del archivo
  Stream.Seek(0,soFromBeginning);
  // Leemos los 2 primeros Bytes
  Stream.ReadBuffer(Header,2);
  // Y comprobamos que son correctos  (todos los JPEG empiezan por FF D8)
  if (Header[1] <> $FF) or (Header[2] <> $D8) then
    // Si no es asi, provocamos un error
    raise Exception.Create('Identificador incorrecto');
  repeat
    // Leemos los 4 primeros bytes del segemento
    Stream.ReadBuffer(Header,4);
    // Usamos los 2 ultimos bytes para calcular el tamño del segmento
    // que es igual al tamaño del contenido + 2, asi que le restamos 2
    Size:= ((Header[3] shl 8) + Header[4]) - 2;
    // Todos los segmentos comienzan por FF asi que utilizamos el segundo
    // byte para identificarlos
    case Header[2] of
      // FE corresponde al segemnto con los comentarios
      $FE: begin
             FillChar(Buffer,Sizeof(Buffer),0);
             // Leemos el contenido del segemento
             Stream.ReadBuffer(Buffer,Size);
             // Y lo convertimos en un string
             Result:= String(PChar(@Buffer));
           end;
      // Estos segemntos son casos especiales, solo miden 2 bytes, asi que
      // restrocedemos el puntero 2 bytes hacia atras
      $01,$D0..$D9: Stream.Seek(-2,soFromCurrent) ;
      // Si no es ni un comentario ni un caso especial, adelantamos el puntero
      // hasta el siguiente segmento
      else Stream.Seek(Size,soFromCurrent);
    end;
  // Salimos del bucle si ya hemos leido el comentario o llegamos al ultimo
  // segmento, ya que a partir de aqui el archivo solo contiene informacion
  // correspondiente a la propia imagen.
  until (Result <> '') or (Header[2] = $DA);
end;

// Esta funcion inserta un comentario. Hay que tener en cuenta que si hay un
// comentario anterior no se elimina, asi que deberemos usar antes la
// funcion "Limpiar" para quitar los comentarios anteriores.
procedure InsertarCom(Origen, Destino: TStream; Comment: string);
var
  Buffer: array[0..$FFFF] of Char;
  Header: array[1..4] of byte;
  Size: Integer;
begin
  // No colocamos al principio del archivo
  Origen.Seek(0,soFromBeginning);
  // Leemos los 2 primeros bytes
  Origen.ReadBuffer(Header,2);
  // y comprobamos que son correctos
  if (Header[1] <> $FF) or (Header[2] <> $D8) then
    raise Exception.Create('Identificador incorrecto');
  // Escribimos los 2 primeros bytes
  Destino.WriteBuffer(Header,2);
  // Calculamos la longitud del segmento
  Size:= Length(Comment) + 2;
  Header[1]:= $FF;
  Header[2]:= $FE;
  Header[3]:= Size div 256;
  Header[4]:= Size mod 256;
  // Copiamos el comentario a un buffer
  StrCopy(@Buffer,PChar(Comment));
  // Escribimos la cabecera del segmento
  Destino.WriteBuffer(Header,4);
  // Escribimos el contenido del segmento
  Destino.WriteBuffer(Buffer,Length(Comment));
  // Copiamos el resto
  Destino.CopyFrom(Origen,Origen.Size - Origen.Position);
end;

// Esta funcion elimina los segmentos resrvados para comentarios y para
// aplicaciones, informacion que nos es necesaria para ver la imagen. Hay
// que tener cuidado porque algunas aplicaciones guardan informacion ahi, por
// ejemplo cuando fue tomada la foto o que camara se uso.
procedure Limpiar(Origen, Destino: TStream);
var
  Buffer: array[0..$FFFF] of Char;
  Header: array[1..4] of byte;
  Size: Integer;
begin
  // Nos colocamos al principio del archivo
  Origen.Seek(0,soFromBeginning);
  // Leemos los 2 primeros bytes
  Origen.ReadBuffer(Header,2);
  // Comprobamos que son correctos
  if (Header[1] <> $FF) or (Header[2] <> $D8) then
    raise Exception.Create('Identificador incorrecto');
  Destino.WriteBuffer(Header,2);
  // Leemos segemento a segmento
  repeat
    Origen.ReadBuffer(Header,4);
    Size:= ((Header[3] shl 8) + Header[4]) - 2;
    case Header[2] of
      // Si es un comentario o un segmento de aplicacion saltamos al siguiente
      $FE, $E0..$EF: Origen.Seek(Size,soFromCurrent);
      // Si es un caso especial retrocedemos 2 bytes
      $01,$D0..$D9: begin
                      Destino.WriteBuffer(Header,2);
                      Origen.Seek(-2,soFromCurrent)
                    end
      else
      // Si es un segmento normal lo copiamos
      begin
        Origen.ReadBuffer(Buffer,Size);
        Destino.WriteBuffer(Header,4);
        Destino.WriteBuffer(Buffer,Size);
      end;
    end;
  until Header[2] = $DA;
  // Copiamos el resto del archivo
  Destino.CopyFrom(Origen,Origen.Size - Origen.Position);
end;

Para mas informacion sobre el formato de archivo JPEG
http://www.wotsit.org/search.asp?page=5&s=graphics

PD: Al comentar la funcion de insertar comentario me di cuenta de que daba mas pasos de los necesarios, debido a una confusion que tenia con respecto al primer segmento. Esto demuestra que nunca esta mal repasar el codigo

Última edición por seoane fecha: 23-05-2006 a las 20:35:31.
Responder Con Cita
  #16  
Antiguo 23-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Con respecto a las funciones criptograficas, poco se puede decir, estan basadas en estos ejemplos que tiene microsoft en su pagina

Encriptar y Desencriptar

Aunque los ejemplos muestran como encriptar unos archivos y estan en C pero mas o menos es lo mismo, son los mismos pasos.

Por ultimo, a lo mejor llama la atencion porque importo una a una las funciones criptograficas de la API, muy sencillo, la version 7 de delphi no tiene ninguna libreria que lo haga, supongo que en versiones posteriores ya lo hara pero tampoco lo se. De todas formas creo que en JEDI tenian disponible una libreria para usar esta API.

Última edición por seoane fecha: 23-05-2006 a las 20:51:24.
Responder Con Cita
  #17  
Antiguo 24-05-2006
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,

Cita:
Empezado por Seoane
De todas formas creo que en JEDI tenian disponible una libreria para usar esta API.
Yo no he podido encontrarla en la versión 3.0. Los comentarios que das están muy bien y también los enlaces que das como referencia.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #18  
Antiguo 24-05-2006
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.275
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 seoane
...si tenéis alguna pregunta, sugerencia, o crítica ponerla aquí...
Unos unos Hints en los botones (al menos) no hubieran estado mal...
No en serio, está muy bien; El código es muy ilustrativo (sin comentarios ), pero muy ilustrativo. Muy interesante.

Me ha resultado curioso, que la imagen con mensaje ocupe menos que la original... Supongo que debido al factor de compresión estandard de los JPG. Si es así (que no lo se) ¿Se podría fijar a 100% para añadir información y no perder calidad? (tal vez estoy diciendo una salvajada soane, corrígeme si es así).

Un saludo.
__________________
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 24-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
La imagen resultante ocupa menos porque elimino del archivo todos los comentarios anteriores y los segmentos de aplicacion. Estos segementos de aplicacion los añaden algunas aplicaciones con informacion extra, como cuando se hizo la foto o incluso thumbnails de la propia imagen. En archivos grandes apenas se notan pero en pequeños pueden llegar a "engordar" bastante el archivo. Por ahi circulan programas que dicen "optimizar" los archivos jpeg que hacen lo mismo, la gente cobra por cada cosa ...

En cuanto a la calidad no se cambia nada, porque la parte del archivo que contiene la informacion sobre la imagen se copia sin alterar, la imagen no se "recomprime" y por lo tanto no se pierde calidad en el proceso.
Responder Con Cita
  #20  
Antiguo 24-05-2006
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.275
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
Ok, ya me parecía raro el tema de la pérdida de calidad, pero no le encontraba otra explicación.

Osea, usas JPG porque comprime mucho la imagen y luego te ponen los comentarios y demás que ocupa espacio innecesario... ¡¡¡Manda cojones!!!

Gracias por la aclaración.

P.D: Otra curiosidad; Aunque el programa trabaja con imágenes JPEG y añades la unidad JPEG, si la eliminas compila perfectamente.
__________________
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.

Última edición por Neftali [Germán.Estévez] fecha: 24-05-2006 a las 13:09:11.
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
Programa PDA. Aprendiendo Varios 1 11-01-2005 18:17:23
Lanzar programa desde mi programa Pablo Carlos API de Windows 32 09-09-2004 13:56:26
Ejecutar un programa externo desde un programa de Delphi Roger_Fernandez Varios 3 02-09-2004 18:05:36
programa c++ tartinamb C++ Builder 5 23-04-2004 17:01:24
Ejecutar un programa DENTRO de otro programa seduerey Varios 8 12-11-2003 13:56:20


La franja horaria es GMT +2. Ahora son las 17:46:51.


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