我在翻譯下面的PHP/ImageMagick的代碼轉換成紅寶石RMagick失敗(使它成爲未來用戶更易於管理,並瞭解它的真正在做什麼):瞭解ImageMagick的轉換和翻譯到Ruby RMagick
$output = array();
$returnValue = 0;
$pngFiles = $myDir->find("/.png$/i");
foreach($pngFiles as $pngFile) {
$cmd = 'convert '.$pngFile->path.' -resize 1x1 -alpha on -channel o -format "%[fx:u.a]" info:'
exec($cmd, $output, $returnValue);
if($output[0] != 1) {
logMessage("PNG file contains some alpha transparency and will not be modified");
}
}
By now我以爲我或多或少地理解了convert-command在做什麼,但將其轉換爲RMagick使我重新思考。
例如:爲什麼在$myDir
PNG格式$output[0] != 1
有時true
,但RMagick的Image.alpha?
是總是true
在$myDir
PNG圖片?我錯過了什麼嗎?
我認爲如果有人能向我解釋convert-command到底在做什麼(包括表達式%[fx:u.a]
),最好的方法是讓我回到正軌。
更新:在此期間,我寫了我需要此信息的腳本。你可以check it out at Github如果它對你有任何幫助。
我認爲 - Image.alpha可能會檢查圖像是否具有alpha圖層,哪些PNG會這樣做。而這是檢查一個像素的透明度水平。請參閱下面的答案。 – Orbling 2010-11-20 19:25:50