所以,我有很多tiff文件,我想生成它们的缩略图。此缩略图必须具有透明背景。
所有tiff都有:白色背景和沿着对象的路径(例如一罐可乐)并保存为CMYK。
所以我尝试了很多convert
命令(如these和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');
here 是一个示例tif文件
也许有人知道如何解决这个问题。
修改
最好的结果会返回:
convert test.tif -clip -alpha transparent 1.png
但是它会保存背景而不是剪切的对象。 (png)
答案 0 :(得分:4)
在尝试了几个小时后找到它。
convert can.tif -alpha transparent -clip -alpha opaque result.png
所以它必须用例如shell_exec
- 我没有找到任何可能的解决方案来使用Imagick-PHP类。
问题是旧的imagemagick版本以及错误的命令属性顺序。
答案 1 :(得分:0)
PHP imagick扩展的解决方案是复制同一组命令:
$imagick->setImageAlphaChannel(\Imagick::ALPHACHANNEL_TRANSPARENT);
$imagick->clipImage();
$imagick->setImageAlphaChannel(\Imagick::ALPHACHANNEL_OPAQUE);