簡體   English   中英

ImageMagick透明PNG背景

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM