我使用的是 Linux,无法访问 Adobe 的任何“花哨”程序。
我正在尝试将带有 alpha 通道的现有 PNG32 图像转换为 PNG8。我尝试了以下方法:
convert original.png PNG8:new.png - 严重扭曲图像并仅保留二进制 alpha(未索引的 alpha)pngcrush -rem alla -reduce -brute original.png new.png - 使图像变小但没有考虑量化(图像少于 256 色),因此输出仍然是 PNG32。我还能尝试什么?
这个 PHP 脚本使用 libgd 实现了这一点:
<?PHP
if(!isset($argv[1]) || !is_readable($argv[1])) {
echo "Creates an 8-bit PNG from a 32-bit PNG\n\n";
echo "Usage:\n";
echo "\t" . $argv[0] . " input.png > output.png\n";
echo "\t" . $argv[0] . " input.png output.png\n";
die();
}
$inFile = $argv[1];
$outFile = $argv[2] or STDOUT;
$inImage = imagecreatefrompng($inFile);
$outImage = imagecreate(imagesx($inImage), imagesy($inImage));
imagecopy($outImage, $inImage, 0, 0, 0, 0, imagesx($inImage), imagesy($inImage));
imagepng($outImage, $outFile);
Run Code Online (Sandbox Code Playgroud)
将其转储到文件中并运行它:
php convert.php input.png output.png
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4182 次 |
| 最近记录: |