0

我想将 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 站点中的帮助不是很全面,并且有许多未记录的功能。

谢谢。

4

1 回答 1

1

在命令行我会做这样的事情:

convert test.png -transparent-color white PNG8:converted.png

但是这种类型的转换在某些 IM 版本中似乎存在问题,我发现这个用户组帖子由一些似乎有类似问题的人发布:http: //studio.imagemagick.org/pipermail/magick-users/2009- 5月/022534.html

您在使用 IM 时使用命令行还是使用 PHP 模块(http://de.php.net/manual/en/book.imagick.php)?

于 2010-06-15T07:40:02.353 回答