Photoshop 的液化滤镜允许您以多种不同方式交互式地扭曲图像。当您根据自己的喜好扭曲图像后,您可以将表示变换的网格保存在 .msh 文件中。然后可以加载此转换并将其应用于其他图像。我需要对 .msh 文件进行逆向工程,即使我以前从未解码过文件格式。以下是我到目前为止所想出的所有内容。
以前,.msh 文件只包含一个标题和一个未压缩的像素位移值数组。我知道这一点是因为该格式在开源项目中进行了逆向工程,例如Paint.NET和graphics32(参见 TVectorMap.LoadFromFile 和 SaveToFile)。这导致文件非常大,因此 Adobe 最终更新了格式以包含某种压缩。压缩非常有效(11.5 MB 的文件在以新格式重新保存时减少到 430 kB),但我不知道它是有损还是无损。据我所知,这些较新的压缩 .msh 文件尚未解码,但这是我需要做的。
新标头与旧标头非常相似,但我无法弄清楚使用了哪种压缩方式,因此无法读取实际数据。我在谷歌上搜索了一些常见的压缩格式及其签名,但没有发现任何有用的东西。
有什么技巧或实用程序可以帮助我确定压缩类型吗?任何其他想法可以引导我朝着正确的方向前进?
如果有人想看一看,我创建了几个大小不同的示例 .msh 文件以及演示正在应用的转换的 .png 图像。我在这里将它们上传到 MEGA(下载 1.3 MB):https ://mega.nz/#!We5QkARI!2-qD_qK2e8ADnYJcT578x9RxXo4uvBH0rXeDPeR-pRU