ImageMagick Прозрачный фон PNG - PullRequest
       4

ImageMagick Прозрачный фон PNG

10 голосов
/ 11 октября 2011

Я пытаюсь взять это изображение, enter image description here, которое я преобразовал в файл .png, а затем хочу удалить белый фон, чтобы сделать его прозрачным.

Я попытался запустить следующее, но еще не 'Не повезло.

    $strInputFile = 'car.png';
    $execScript = '/usr/local/bin/convert '.$strInputFile.' ';
    $execScript .= "-transparent white car-new.png"; 
    $output = shell_exec($execScript);

Я что-то не так делаю?Новый файл создается, но все еще имеет белый фон.

Ответы [ 6 ]

16 голосов
/ 21 ноября 2012

Аналогичная проблема с php imagick:

При преобразовании SVG в прозрачный PNG, не забудьте поставить это ПЕРЕД $ imagick-> readImageBlob ():

$imagick->setBackgroundColor(new ImagickPixel('transparent'));
2 голосов
/ 06 февраля 2016

Поскольку изображение представляет собой JPEG, который подвержен потерям и небольшим неточностям в цвете, белые цвета на вашем изображении на самом деле не являются на 100% чистыми белыми.ImageMagick имеет способ справиться с этим с помощью параметра -fuzz, который допускает степень размытости или диапазон допустимых ошибок при указании цветов.

Правильное заклинание здесь:

convert car.jpg -fuzz 10% -transparent white car.png
2 голосов
/ 05 ноября 2013

Попробуйте следующий код:

$strInputFile = 'car.png';
$target = 'car_transparent.png';
$im = new Imagick($strInputFile);
$im->paintTransparentImage($im->getImageBackgroundColor(), 0, 10000);
$im->setImageFormat('png');
$im->writeImage($target);
$im->destroy();
0 голосов
/ 06 февраля 2016

Если вы не создаете сценарий оболочки, попробуйте следующее:

$ convert -transparency white car.png car-new.png

Это должно работать в универсальном терминале.Если это не так, дайте мне знать.Надеюсь, поможет!

0 голосов
/ 14 октября 2011

Фон вашего изображения не white (я имею в виду 0xFFFFFF), это 0xFEFEFE. Попробуйте:

$execScript .= "-transparent #FEFEFE car-new.png"; 
0 голосов
/ 11 октября 2011

Вы имели в виду использовать -transparency вместо -transparent?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...