Как сказать разницу между оригинальным файлом изображения .bmp / ​​.emf с обработанным файлом .bmp / ​​.emf?

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

Вопрос

Сводка:

  1. Расчеты указывают прямо вперед способом: изображение .BMP 3289 x 4570 x 32BPP занимает около 53 МБ. Картина того же размера, но 24BPP занимает около 43 МБ, что из 16BPP занимает около 28 МБ. Chemdraw-обрабатываемый файл изображения должен затем преобразовать от 24BPP на 16BPP в моей ситуации.

  2. Дальнейшее сравнение шестнадцатеричных данных обоих файлов дает более подробное понимание разницы между Chemdraw-обрабатываемой изображением и исходным изображением. В частности, Chemdraw хранит «emf_stretchdibits» вместо «EMF_STRITCHBLT». Следует добавить, что «EMF_STRICHDIBITS» можно сделать, вызывая растяжение при копировании пикселей на THMETAFILE / TMETAFILECANVAS. Следует также отметить, что пиксели для «EMF_StretchDibits» должны быть такими же, как для «EMF_STRETCHBLT».

  3. К сожалению, до сих пор я не узнал, как Chemdraw точно процессы и магазины наклейки. То есть я не узнал, почему хранится пиксели Chemdraw отличается от того, что я могу получить программически.

    PS: Я проголосую добрые ответы относительно этого вопроса позже, потому что у меня нет достаточно репутации на данный момент. Спасибо за всех, кто был добр к комментарию!

===

Привет,

Спасибо за ваше время очень много!

Скажи, что у меня есть картинка, названная «Famcure_Original.bmp». Размер файла 3289 x 4570, 43 МБ. Затем я делаю следующее, чтобы преобразовать его в файл .emf (расширенный метафайл Windows):

Способ 1, сделав небольшой внутренний Delphi-программа: (1) загрузить файл изображения .bmp .bmp. (2) Получить холст TMEMETAFILE (TMETTAFILECANVAS) (3) COLL CONVAS.DRAW, чтобы скопировать изображение. (4) Сохранить в файл .emf, названный «Thumbers_original_bmp2emf_method1.emf»

Метод 2: (1) Откройте файл изображения .bmp в программе mspaint, выберите «Выбрать все» и выберите «Копировать». (2) Откройте внешнюю программу под названием Chemdraw, создайте новый документ и выберите «Вставить». (3) Затем я выбираю, чтобы сохранить это в формате CHML-совместимого XML, с именем «thume_original_bmp2emf_method2.cdxml». (4) Содержание изображения (может быть, изменено или ухудшено?) Теперь сохраняется в файле whusme_original_bmp2emf_method2.cdxml. Формат имеет BASE64-кодированный ZLIB-сжатый формат. (5) Я могу Base64 - декодируйте строку XML, zlib-decompress, и сохраните его в файл изображения "Famcure_Original_bmp2emf_method2.emf".

Размер файла образец_ORIGINAL_BMP2EMF_METHOD2.EMF меньше на 15 МБ, чем образец_original_bmp2emf_method1.emf, но ширина и высота сохраняются. Кроме того, если я открою «Thumbe_original_bmp2emf_method2.emf» в программе MSPAINT и сохранить его обратно в формат файла .bmp, предупреждает, что прозрачная информация проигрывает.

Можете ли вы помочь прокомментировать, как сказать разницу "thumbers_original_bmp2emf_method1.emf" & "samment_original_bmp2emf_method2.emf"? Изображение меньше, потому что его качество уменьшается? Другими словами, какие изменения в моей оригинальной картине могут быть сделаны этой внешней программой?

С наилучшими пожеланиями,

Упомянутый выше файлы можно загрузить в следующем URL:

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

PS: Я верю, что Андреас Рейбранд был достаточно добрым, чтобы добраться до его ответа, и я тогда отдал свои комментарии. Но я не вижу тех сейчас. Предполагается ли нормальное поведение системы? o_o.

Это было полезно?

Решение

Вы написали:

BASE64 - декодируйте строку XML, Zlib-decompress, и сохраните его в файл изображения «Famcure_ORIGINAL_BMP2EMF_METHOD2.EMF».

Таким образом, он окончательно не является файлом EMF, но какой-то формат молнии. Или он был преобразован в другой формат (например, вектора) перед преобразованием в XML. В этом случае у вас меньше данных в полученном изображении, чем реальное растровое изображение.

Принимая во внимание, что первый метод даст вам файл EMF размером только в нескольких байтах, чем более простой файл BMP (то есть записи EMF, используемые для инкапсуляции данных BITMAP).

Если вы ZIP файл EMF первого метода, я совершенно уверен, что вы получите файл с меньшим размером, чем ложное ЭДС, полученные методом двух.

Другие советы

Почему бы вам не сравнить два изображения? Откройте их в программе RASTER REDITING и сравните пиксели.

Почему вы заботитесь, насколько большими файлы? Конечно, что важно, является ли изображение правильным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top