如何从PSD文件中提取图像,包括单个图层中包含的图像

eri*_*ons 2 photoshop psd image extract gimp

我对成像工具知之甚少,但我需要提取psd文件层中包含的图像.我尝试使用GIMP和"保存所有图层"插件,但这只是保存根图层,所以我最终只有两个.pngs.我需要在具有正确尺寸的单独文件中的每个图像.

我需要文件的原因是我一直在要求使用图像创建CSS动画.动画示例位于http://srv1.contobox.com/frontend/ads/preview.html?id=981

我想要提取的psd文档是 https://www.dropbox.com/sh/ud2eaesej08o0g3/AAAi-_pPHGESOFOBpA0uQfjta

jsb*_*eno 13

问题是这些文件是用图层组构成的(我只打开其中一个).虽然GIMP支持打开文件,但您正在使用的"保存所有图层"插件可能不知道图层组.

(BTW,GIMP不稳定 - 2.9开发版本可能因打开PSD而崩溃 - 图像在那里打开乱码.但它在gimp 2.8.10中打开了)

可以将所有图层(包括子图层)保存为Python控制台中具有交互的单独图像.有了你PSD是唯一在GIMP中打开的图像,请转到filters-> python-> console并输入以下内容:

img = gimp.image_list()[0]  # retrieves a reference to the image

folder = "/tmp/" # folder of you choice for saving the files
counter = 0
def save_recurse(item):
    global counter 
    if hasattr(item, "layers"):
        for layer in reversed(item.layers):
            save_recurse(layer)
    else:
        counter += 1
        name = folder + "layer_%03d.png" % counter
        pdb.gimp_file_save(img, item, name, name)


save_recurse(img)
Run Code Online (Sandbox Code Playgroud)

(顺便说一句,我在这里输入它的方式你只需将上面的列表复制并粘贴到GIMP的Python控制台中)