Cómo saber la diferencia entre el archivo original de imagen BMP / .EMF con el archivo .BMP / .EMF procesado?

StackOverflow https://stackoverflow.com/questions/4358914

Pregunta

Recapitulación:

  1. Los cálculos señalan de manera recta hacia adelante que: a .BMP imagen de 3289 X 4570 X 32 bpp toma alrededor de 53 MB. La imagen del mismo tamaño, pero 24bpp toma alrededor de 43MB, la de 16bpp toma alrededor de 28 MB. archivo de imagen procesada ChemDraw debe entonces ser convertida de 24 bpp a 16bpp en mi situación.

  2. Además la comparación de los datos hexadecimales de ambos archivos da comprensión más detallada de la diferencia entre la imagen procesada ChemDraw y la imagen original. Específicamente, tiendas ChemDraw "EMF_STRETCHDIBITS" en lugar de "EMF_STRETCHBLT". Hay que añadir que "EMF_STRETCHDIBITS" se pueden hacer llamando al copiar StretchDIBits píxeles en TMetaFile / TMetaFileCanvas. Cabe también señalar que los píxeles para "EMF_STRETCHDIBITS" deben ser los mismos que los de "EMF_STRETCHBLT".

  3. Por desgracia, hasta ahora no he encontrado la manera ChemDraw procesa y almacena exactamente pegar imágenes. Es decir, que no encontrar por qué los píxeles ChemDraw almacenado es diferente de lo que puedo obtener programingly.

    PS: Voy a votar hasta respuestas tipo con respecto a esta cuestión más adelante porque no tengo la reputación suficiente por el momento. Gracias por todo el mundo que ha sido amable con comentario!

===

Hola,

Gracias por su tiempo mucho!

decir que tengo una fotografía denominada "sample_original.bmp". El tamaño del archivo es 3289 X 4570, 43MB. Entonces haga lo siguiente para convertirlo en un archivo .EMF (Enhanced Windows Metafile):

Método 1, haciendo un pequeño programa de Delphi en la empresa: (1) Cargar el archivo de imagen .bmp. (2) Obtener el lienzo de TMetaFile (TMetaFileCanvas) (3) Llamada Canvas.Draw para copiar la imagen. (4) guardar en el archivo .EMF, llamada "sample_original_bmp2emf_method1.emf"

Método 2: (1) Abrir el archivo de imagen BMP en el programa mspaint, elegir la opción "seleccionar todo", y seleccione "Copiar". (2) Abrir un programa externo denominado ChemDraw, crear nuevo documento, y seleccione "pegar". (3) Entonces optar por guardar que en el formato .cdxml compatible con XML, llamado "sample_original_bmp2emf_method2.cdxml". (4) El contenido de la imagen (tal vez cambiado o degradado?) Hemos guardado el archivo sample_original_bmp2emf_method2.cdxml. El formato está codificado en base 64 formato zlib-comprimido. (5) que pueda decodificar Base64 la cadena XML, zlib-descomprimirlo, y lo guarda en el archivo de imagen "sample_original_bmp2emf_method2.emf".

El tamaño del archivo de sample_original_bmp2emf_method2.emf es menor de 15 MB que sample_original_bmp2emf_method1.emf, pero la anchura y la altura se ha mantenido. Por otra parte, si abro "sample_original_bmp2emf_method2.emf" en el programa mspaint y guardarla de nuevo en formato de archivo .bmp, una advertencia que aparece información transparente está perdiendo.

Podría ayudar a explicar cómo se puede notar la diferencia "sample_original_bmp2emf_method1.emf" y "sample_original_bmp2emf_method2.emf"? Es la imagen más pequeña, porque se disminuye su calidad? En otras palabras, ¿qué cambios en mi imagen original podría hacerse mediante este programa externo?

Los mejores deseos,

Los archivos mencionados anteriormente se pueden descargar en la siguiente dirección:

http://www.rapidspread.com/file.jsp?id=2ighvzoci8

PS: Creo que tiene Andreas Rejbrand sea tan amable de hecho su respuesta y luego me dio mis comentarios. Pero no puedo ver que ahora. Se supone que es el comportamiento normal del sistema? o_o

¿Fue útil?

Solución

escribió:

Base 64-decodificación de la cadena XML, zlib-descomprimirlo, y lo guarda en el archivo de imagen "sample_original_bmp2emf_method2.emf".

Así que es definitivamente no es un archivo EMF, pero algunos formato comprimido .. O se convierte en otro formato (como vectorial) antes de convertir a XML. En este caso, usted tiene menos datos en la imagen resultante en lugar de un mapa de bits real.

Mientras que el primer método le dará un archivo EMF con un tamaño de sólo unos pocos bytes más grande que un archivo sin formato bmp (es decir, los registros EMF utilizados para encapsular los datos de mapa de bits).

Si el archivo zip de fem del primer método, estoy bastante seguro de que obtendrá un archivo con un tamaño más pequeño que el falso fem obtenido por el método de dos.

Otros consejos

¿Por qué no te comparar las dos imágenes? Abrirlas en un programa de edición de trama y compara los píxeles.

¿Por qué te importa lo grande que son los archivos? Sin duda, lo que es importante es si la imagen es la correcta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top