vip缩略图SVG图像透明问题



我有一个透明的SVG图像,我试图生成该图像的缩略图。它正确地生成了图像的缩略图,但它删除了图像的透明度,并为图像添加了黑色背景。我想生成缩略图而不失去图像的透明度。

注意-同样的问题与jpg和jpeg图像也,但我添加白色背景的图像在svg的情况下,它不使透明的背景 我正在使用PHP vip库。

这是我的代码

$im = VipsImage::thumbnail($filename, 180, ['height' => 225, 'size' => 'both']);
$alpha = $im->hasAlpha();
if($alpha) {
$im = $im->flatten(['background' => [255, 255, 255]]);
}

只要写一个支持透明的格式,比如PNG。

例如:

$im = VipsImage::thumbnail("x.svg", 180, ['height' => 225, 'size' => 'both']);
$im->WriteToFile("x.png");

WEBP, GIF, HEIC, AVIF, TIFF等也支持透明度。

最新更新