簡體   English   中英

將tiff(帶有路徑)轉換為png並刪除背景(透明)-使用PHP中的Imagemagick

[英]Convert tiff (with path) to png and remove background (transparent) - with Imagemagick in PHP

所以,我有很多tiff文件,我想生成它們的縮略圖。 此縮略圖必須具有透明背景。

所有tiff都具有: 白色背景沿着對象路徑 (例如一罐可樂),並保存為CMYK。

因此,我嘗試了很多convert命令(例如這些命令以及php Imagick::clipPath但沒有任何工作很好(背景仍然存在/圖像損壞)。

convert a.tif -clip -resize 800x600 a.png
convert a.tif -clip -alpha transparent +clip -channel A -resize 800x600 a.png

還有這個PHP代碼:

<?php
$image = new Imagick('a.tif');
$image->clipPath();    
$image->setImageFormat('png');    
$image->thumbnailImage(800, 600, true);
$image->writeImage('a.png');

是一個tif文件示例

也許有人知道如何解決這個問題。

編輯:

最好的結果是這樣的: convert test.tif -clip -alpha transparent 1.png

但這會保存背景,而不是剪切的對象。 png

嘗試了幾個小時后才找到它。

convert can.tif -alpha transparent -clip -alpha opaque result.png

因此,它必須使用例如shell_exec來執行-我沒有找到使用Imagick-PHP類執行此操作的任何可能的解決方案。

問題是舊的imagemagick版本以及命令屬性的順序錯誤。

PHP imagick擴展的解決方案是復制同一組命令:

$imagick->setImageAlphaChannel(\Imagick::ALPHACHANNEL_TRANSPARENT);
$imagick->clipImage();
$imagick->setImageAlphaChannel(\Imagick::ALPHACHANNEL_OPAQUE);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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