簡體   English   中英

如何使用Python Wand / ImageMagick將PSD轉換為PNG?

[英]How to Convert PSD into PNG, using Python Wand / ImageMagick?

我嘗試將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新手)

任何幫助表示贊賞。

這對於讀取和寫入都將很好且快速地起作用:

# 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]是第三層,依此類推,所以最好不要這樣提取層。

對於使用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 )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM