2010-10-08 69 views
0

在Ruby中,找出PNG是否具有透明度最聰明的方法是什麼?如果我只是檢查是否有alpha通道,可以嗎?如果是的話:我如何檢查alpha通道?Ruby:查找非透明PNG並轉換爲JPG

我正在編寫一個腳本,將所有PNG 沒有透明度轉換成更小的JPG文件。

非常感謝您的幫助!

UPDATE:與此同時我寫了該腳本,你可以在Github找到它。

+1

你知道,一個JPEG北京時間比PNG不一定小,不是嗎?這當然取決於JPEG壓縮,但是PNG的平均質量/尺寸比率對於web圖形來說要好得多。 – fresskoma 2010-10-08 10:27:10

回答

3

檢查alpha通道似乎是最明智的做法。假設您正在使用RMagick安全嗎?你讀過文檔嗎?

>> require 'RMagick' 
>> image = Magick::Image.read("a.png").first 
>> image.alpha? 
=> true 

http://www.imagemagick.org/RMagick/doc/image1.html#alpha_q

+0

感謝您的提示和鏈接!就我而言,似乎所有的PNG都有一個alpha通道。請原諒我的蹩腳問題,但有可能有一個不透明的PNG,並且還有一個alpha通道?這意味着在我的情況下檢查alpha通道是不夠的。 – Javier 2010-10-08 11:43:49

+0

您可以鏈接問題中的特殊圖像。 – tokland 2010-10-08 12:29:52

+1

檢查我發佈到我的腳本的鏈接。您的建議不起作用,因爲所有PNG都有Alpha通道。 AFAIK:阿爾法通道的價值設置透明度,而不是它的存在。 – Javier 2010-12-16 22:13:32