【问题标题】:How to Convert PSD into PNG, using Python Wand / ImageMagick?如何使用 Python Wand / ImageMagick 将 PSD 转换为 PNG?
【发布时间】:2015-04-25 11:57:24
【问题描述】:

我尝试将 PSD 转换为 PNG,但是当我保存 PNG 时,Wand (wand-0.4.0-py2.7) 将 PSD 内的所有图层作为单独的 PNG 文件吐出(最后保存的文件是我想要的文件)。那么如何正确地将PSD转为PNG呢?

# Convert a large PSD to small PNG thumbnail
myImage = Image(filename="test.psd")
myImage.resize(100, 100)
myImage.format = "png"
myImage.save(filename="test.png")

找到相关解决方案:

但不确定如何在 Python 中完成(我是 Python 新手)

感谢任何帮助。

【问题讨论】:

    标签: python imagemagick png psd wand


    【解决方案1】:

    这对于读写来说效果很好并且快速

    # Convert a large PSD to small PNG thumbnail
    myImage = Image(filename="test.psd[0]")
    myImage.format = "png"
    myImage.sample(100, 100)
    myImage.save(filename="test.png")
    

    因为 Wand 只读取 1 层而不是 PSD 内的所有层。

    • 关键是将[0]附加到文件名字符串中。
    • 经过测试,[0]会从PSD中得到最终合成的图像。
    • 和所有其他数字似乎并不能清楚地说明它们代表哪些层。在我的例子中,[1] 是从底部算起的第 2 层,[2] 是第 3 层,依此类推,所以不要以这种方式提取层可能是个好主意。

    对于 PSD 文件进行更复杂的操作,您可以考虑使用 Python psd-tools (https://pypi.python.org/pypi/psd-tools)。但从我最初的测试来看,它读取 PSD 相当慢(可能是因为它读取了整个 PSD)。


    Qt 的附加应用

    如果您想将 PSD(或其他图像格式)加载到 Qt UI 中,它会很有用。其概念是将Wand加载的图像转换为图像字符串,并将该图像字符串发送给QImage。

    # load the image first
    myImage = Image(filename=r"c:\test.psd[0]")
    myImage.format = "png"
    myImage.sample(100, 100)
    aBlob = myImage.make_blob()
    
    # load the image data into QImage
    myQImage = QtGui.QImage.fromData( aBlob )
    myQPixmap = QtGui.QPixmap.fromImage( myQImage )
    target_QLabel.setPixmap( myQPixmap )
    

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 1970-01-01
      • 2021-12-02
      • 2015-02-18
      • 2014-03-17
      • 2011-11-16
      • 2013-02-20
      • 2012-04-08
      • 2015-03-05
      相关资源
      最近更新 更多