在Imagick for PHP中将White更改为透明

时间:2016-10-25 21:35:39

标签: php transparent imagick

我正试图制作一张美国地图,随着美国总统候选人被宣布为不同州的赢家而更新。要做到这一点,我有一堆各种颜色的状态图片(红色,蓝色,条纹等),我将拼接在一起创建完整的地图并将其保存为图像。

状态图像都是jpegs,我无法将它们转换为支持透明度的格式。我的问题是,一旦我将这些.jpg图像拉入Imagick,我该如何使这些.jpg图像的白色背景透明?

我有以下代码,它只显示添加到地图中的last image,因为其白色背景覆盖了其余部分。

$us_map = new Imagick();
$us_map->newImage(
  self::MAP_WIDTH,
  self::MAP_HEIGHT,
  new ImagickPixel('none'),
);
$us_map->setFormat('png');
foreach ($curls as $curl) {
  $state = new Imagick();
  $state->readImageBlob($curl->getBody());
  // What do I do here to change all white in $state to transparent?
  $us_map->addImage($state);
}
$file_name = '/tmp/pic.US_MAP.'.request_time().'.png';
$us_map->writeImage($file_name);

0 个答案:

没有答案