Image processing 烟花PNG格式,有什么见解吗?有libs吗?
最终目标是将焰火png文件中的页面导出到单个图像。所以我有几个问题:Image processing 烟花PNG格式,有什么见解吗?有libs吗?,image-processing,png,fireworks,Image Processing,Png,Fireworks,最终目标是将焰火png文件中的页面导出到单个图像。所以我有几个问题: 你知道有什么——库、应用程序——已经做到了这一点吗 你有关于格式的信息吗?我猜想,它们将信息存储在专门的块中。我只是希望这些块的有效载荷的格式不那么难理解 我还没有查到任何烟花文件。我找不到有关格式的信息,所以这是下一步,但我想可能有人知道一些信息,可以节省我一些时间:) 我希望(可能不是这样)每个页面都以PNG格式存储在单独的IDAT块中。不过,由于矢量的能力,不太可能。也许他们将svg格式存储在块中 任何帮助或讨论都将不胜
var doc = fw.getDocumentDOM();
var loc = fw.browseForFolderURL("select a folder to save pages");
var prevWarn = fw.getPref("PsdExport_Warn100"); // bool
fw.setPref("PsdExport_Warn100", false); // don't warn.
var kObjToLayer = 1;
var kFlatten = 2;
var prevLayers = fw.getPref("PsdExport_Layers");
fw.setPref("PsdExport_Layers", kObjToLayer); // flatten layers or not.
var kEffectEditable = 1;
var kEffectRender = 2;
var prevEffects = fw.getPref("PsdExport_Effects");
fw.setPref("PsdExport_Effects", kEffectEditable);
var kTextEditable = 1;
var kTextRender = 2;
var prevText = fw.getPref("PsdExport_Text");
fw.setPref("PsdExport_Text", kTextRender);
if(loc) fw.exportPSD(doc, loc+"/yourPages.psd");
// Put the prefs back.
fw.setPref("PsdExport_Warn100", prevWarn);
fw.setPref("PsdExport_Layers", prevLayers);
fw.setPref("PsdExport_Effects", prevEffects);
fw.setPref("PsdExport_Text", prevText);
如果将其保存为.jsf文件,并在Fireworks中打开一个文档,则只需双击.jsf文件即可
另外,注意到还有一个可用的,它比我的小脚本有更多的选项
如果需要矢量形状,可以使用文件导出>FXG和图像并选择格式下方的所有页面。FXG是一种xml格式,可以使用
HTH我自己对Adobe Fireworks文件中的私有块类型做了如下挖掘(假设Python切片表示法): prVW(“缩略图预览?”)
mkBF
Data format:
- bytes[0:4] - Chunk length
- bytes[4:8] - Chunk type
- bytes[8:12] - 0xfadecafe (file magic?)
- bytes[12:16] - big-endian length value?
- bytes[16:80] - 64-byte NULL-padded data field
- bytes[80:84] - Chunk checksum
mkBS
Data format:
- bytes[0:4] - Chunk length
- bytes[4:8] - Chunk type
- bytes[8:10] - zlib file magic 0x789c
- bytes[10:-8] - zlib data
- bytes[-8:-4] - zlib checksum
- bytes[-4:] - Chunk checksum
Data format:
- bytes[0:4] - Chunk length
- bytes[4:8] - Chunk type
- bytes[8:10] - zlib file magic 0x789c
- bytes[10:-8] - zlib data
- bytes[-8:-4] - zlib checksum
- bytes[-4:] - Chunk checksum
mkBT
Data format:
- bytes[0:4] - Chunk length
- bytes[4:8] - Chunk type
- bytes[8:12] - 0xfacecafe (file magic?)
- bytes[12:16] - Unknown big-endian value. Increments for
each mkBT chunk present, and appears to only
consume the lower 24-bits.
- bytes[16:84] - 68-byte NULL-padded data field
- bytes[84:86] - zlib file magic 0x789c
- bytes[86:-8] - zlib data
- bytes[-8:-4] - zlib checksum
- bytes[-4:] - Chunk checksum
This chunk may contain a split/spanned zlib stream, as the decompressed
data is cut at 64kb per mkBT chunk and does not appear to carry a zlib
checksum value. Decompressing each zlib stream and then concatenating them
all together does not appear to be wrong.
mkTS
Data format:
- bytes[0:4] - Chunk length
- bytes[4:8] - Chunk type
- bytes[8:10] - zlib file magic 0x789c
- bytes[10:-8] - zlib data
- bytes[-8:-4] - zlib checksum
- bytes[-4:] - Chunk checksum
Data format:
- bytes[0:4] - Chunk length
- bytes[4:8] - Chunk type
- bytes[8:10] - zlib file magic 0x789c
- bytes[10:-8] - zlib data
- bytes[-8:-4] - zlib checksum
- bytes[-4:] - Chunk checksum
可能会有帮助:谢谢。我在前面看到了这一点,并打算在这个问题中引用它。我不认为这是一个直接的APNG格式,因为fireworks不知道如何使用正确的APNG。我的CS3副本中甚至没有显示每个帧…prVW块是“缩略图预览块”,我可以找到其他四个帧的0信息。我不希望依赖任何adobe产品或任何GUI步骤。我想真正自动生成这些页面导出。另外,不幸的是,Fireworks文件不是APNG。它们不包含任何APNG块;它们包含专有的“私有”块:prVW、mkBF、mkTS、mkBS、mkBT。如果他们将每个页面存储在不同的APNG框架或其他东西中,那就太好了,但不幸的是事实并非如此。@BenO我想我理解,你对构建一个可以在其他机器(甚至是服务器)上工作的工具感兴趣,并且不管使用任何Adobe工具都能完成转换。不幸的是,这就是我所能帮助的。希望你能在Fireworks论坛或产品博客上得到一些帮助。事实证明Fireworks有一个RPC API,它看起来是最省力的解决方案。它(CS5)甚至有一个名为fw.exportPages()的函数,可以将所有页面导出为PNG。所以我只需要一个正在运行的fireworks实例,我可以编写一个小的前端来将fireworks PNG转换为普通PNG。Fireworks XML RPC: