首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何区分原始..BMP/..EMF图片文件与已处理的..BMP/..EMF文件之间的区别?

如何区分原始..BMP/..EMF图片文件与已处理的..BMP/..EMF文件之间的区别?
EN

Stack Overflow用户
提问于 2010-12-05 13:03:54
回答 2查看 1.7K关注 0票数 2

摘要:

  1. 的计算以一种直截了当的方式指出:一张3289×4570×32 .BMP的.BMP图片大约需要53 of。相同大小的图片( 24bpp )大约需要43 of,16 but的图片大约需要28 of。在我的情况下,化学数据处理的图片文件必须从24 be转换为16 be。

  1. 进一步比较了这两个文件的十六进制数据,从而更详细地理解了ChemDraw处理的图像与原始图片之间的差异。具体来说,ChemDraw存储"EMF_STRETCHDIBITS“而不是"EMF_STRETCHBLT”。应该补充的是,当将像素复制到TMetaFile/TMetaFileCanvas时,可以通过调用EMF_STRETCHDIBITS来完成“StretchDIBits”。还应该注意到,"EMF_STRETCHDIBITS“的像素应该与EMF_STRETCHDIBITS的像素相同。

直到现在,

  1. Unfortunately,还没有发现ChemDraw到底是如何处理和存储粘贴的图片的。也就是说,我没有弄清楚为什么存储的像素ChemDraw与我所能得到的是不同的。

PS:我稍后会对这个问题投出善意的答案,因为我目前还没有足够的声誉。谢谢大家对我的评论!

===

嗨,

非常感谢您的时间!

说我有一张名为"sample_original.bmp“的图片。文件大小为3289×4570,43 is。然后,我执行以下操作将其转换为.EMF文件(增强型MetaFile):

方法1,通过自行制作一个小型的Delphi程序:(1)加载.BMP图像文件.(2)获取TMetaFile(TMetaFileCanvas)的画布(3)调用Canvas.Draw复制图像。(4)保存到.EMF文件,名为"sample_original_bmp2emf_method1.emf“

方法2:(1)在msp本特程序中打开.BMP图像文件,选择"select all",选择"copy“。(2)打开一个名为ChemDraw的外部程序,创建新文档,然后选择“粘贴”。(3)然后选择将其保存为与XML兼容的.cdxml格式,名为"sample_original_bmp2emf_method2.cdxml“。(4)图片的内容(可能改变或退化?)现在保存在sample_original_bmp2emf_method2.cdxml文件中。该格式是Base64 64编码的zlib压缩格式。(5)我可以对XML字符串进行save 64解码,zlib-解压缩它,并将其保存到图片文件"sample_original_bmp2emf_method2.emf“中。

sample_original_bmp2emf_method2.emf的文件大小比sample_original_bmp2emf_method1.emf小15 MB,但宽度和高度得到了维护。此外,如果我在msp本特程序中打开"sample_original_bmp2emf_method2.emf“并将其保存回.bmp文件格式,则会弹出一个警告,即透明信息正在丢失。

你能帮我谈谈如何区分"sample_original_bmp2emf_method1.emf“和"sample_original_bmp2emf_method2.emf”吗?图片是不是因为质量下降而变小了?换句话说,这个外部程序可能会对我原来的图片做什么改变?

谨致问候,

上述文件可在以下网址下载:

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

PS:我相信已经做出了他的回答,然后我给出了我的评论。但我现在看不见了。这应该是系统的正常行为吗?o_o

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-05 15:22:09

你写道:

save 64-解码XML字符串,zlib-解压缩它,并将其保存到图片文件"sample_original_bmp2emf_method2.emf“中。

所以这肯定不是emf文件,而是压缩格式。或者,在转换成XML之前,它被转换成另一种格式(如向量)。在这种情况下,结果图片中的数据比真正的位图少。

而第一种方法将给您一个emf文件,其大小仅比普通bmp文件大几个字节(即用于封装位图数据的emf记录)。

如果您压缩第一个方法的emf文件,我很肯定您会得到一个比方法二获得的假emf更小的文件。

票数 1
EN

Stack Overflow用户

发布于 2010-12-05 18:58:44

你为什么不把这两幅画比较一下呢?在光栅编辑程序中打开它们并比较像素。

为什么你在乎这些文件有多大?当然,重要的是图像是否正确。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4358914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档