[英]ImageMagick Transparent PNG Background
我想拍這張照片, 我轉換為.png文件然后想要刪除白色背景使其透明。
我試過運行以下但沒有運氣。
$strInputFile = 'car.png';
$execScript = '/usr/local/bin/convert '.$strInputFile.' ';
$execScript .= "-transparent white car-new.png";
$output = shell_exec($execScript);
難道我做錯了什么? 新文件已創建,但仍具有白色背景。
與php imagick類似的問題:
將SVG轉換為透明PNG時,別忘了把它放在$ imagick-> readImageBlob()之前:
$imagick->setBackgroundColor(new ImagickPixel('transparent'));
請嘗試以下代碼:
$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();
由於圖像是JPEG,受到損失和輕微的顏色不准確,圖像中的白色實際上不是100%純白色。 ImageMagick有一種通過-fuzz
設置處理這個問題的方法,它在指定顏色時允許一定程度的模糊性或一系列允許的錯誤。
這里正確的咒語是:
convert car.jpg -fuzz 10% -transparent white car.png
如果您沒有制作Shell腳本,請嘗試以下操作:
$ convert -transparency white car.png car-new.png
這應該在通用終端中工作。 如果沒有,請告訴我。 希望能幫助到你!
你的意思是使用-transparency
而不是-transparent
?
你的圖像背景不是white
(我的意思是0xFFFFFF),它是0xFEFEFE。 嘗試:
$execScript .= "-transparent #FEFEFE car-new.png";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.