我尝试将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的新手)
感谢任何帮助。
答案 0 :(得分: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内的所有层。
对于PSD文件的更复杂操作,您可以考虑使用Python psd-tools(https://pypi.python.org/pypi/psd-tools)。但是从我最初的测试来看,它读取的PSD相当慢(可能是因为它读取了整个PSD)。
如果您想将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 )