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

时间:2014-06-19 20:27:17

标签: image extract photoshop gimp psd

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

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

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

1 个答案:

答案 0 :(得分:13)

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

(顺便说一句,GIMP不稳定 - 2.9开发版本目前可能因打开PSD而崩溃 - 图像在那里打开乱码。尽管在gimp 2.8.10中打开了)

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

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)

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