我在将以下PHP/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");
}
}
到现在为止,我认为我更或多或少地理解了convert命令在做什么,但是将其翻译成RMagick让我重新考虑了这个问题。
例如:为什么$output[0] != 1
在$myDir
中的PNG文件有时true
,但是在$myDir
中的PNG文件中,RMagick的Image.alpha?
总是true
?我错过了什么吗?
我认为让我回到正轨的最好方法是,如果有人能够解释一下convert命令到底在做什么(包括表达式%[fx:u.a]
)。
更新:与此同时,我已经编写了我需要这些信息的脚本。如果对您有帮助,您可以在Github上查看它。