我想将alpha透明png图像转换为基于调色板的png图像。
在GD中,我可以轻松完成:
// We have already the image loaded in $source_img
$w=200; $h=200; // We supose that img dimensions are 200x200
$img = imagecreatetruecolor($w, $h); // New black image
list($r, $g, $b) = array(200, 200, 200); // Some color that doesn't appear in image to avoid conflict
$color = imagecolorallocate($img, $r, $g, $b);
imagefill($img, 0, 0, $color); // Fill the black image with the chosen color.
imagecolortransparent($img, $color); // Set the chosen color as transparent
$res = imagecopyresampled($img, $source_img, 0, 0, 0, 0, $w, $h, $w, $h);
但是在Imagick中我不知道如何将颜色设置为透明(GD中的imagecolortransparent())。我花了几个小时在互联网上搜索,但php网站的帮助并不是很严格,而且还有很多未记录的功能。
感谢。
答案 0 :(得分:1)
在命令行上我会做这样的事情:
convert test.png -transparent-color white PNG8:converted.png
但是在某些具有此类转换的IM版本中似乎存在问题,我发现这个用户组帖子似乎有些人似乎有类似的问题:http://studio.imagemagick.org/pipermail/magick-users/2009-May/022534.html
使用IM时是使用命令行还是使用PHP模块(http://de.php.net/manual/en/book.imagick.php)?