【问题标题】:PHP Eventviva enlarges transparent pngPHP Eventviva放大透明png
【发布时间】:2025-11-30 10:20:16
【问题描述】:

我正在使用Eventviva 进行图像缩放、调整大小等。

问题是如果我用它来保存透明 png 而不调整大小或缩放,像这样

$image = new \Eventviva\ImageResize($file['tmp_name']);
$image-save(self::getFilesDir($file['id']));

512x512px 和 14kb 大小的图像现在是 1Mb

Eventviva 使用下一个函数:

imagecreatefrompng、imagecreatetruecolor、imagealphablending、imagesavealpha、imagecopyresampled 和最后imagepng保存图片

我不知道哪个部分放大了图像。可以看一下save函数的源码here

【问题讨论】:

    标签: php image php-gd


    【解决方案1】:

    这可能是因为文件的位深度正在改变。如果您使用的是 Windows,请在调整图像大小之前和之后检查文件属性中的“位深度”字段。

    对保存为 8 位和 32 位深度的 500x500 PNG 文件进行快速测试,结果分别为 61.6KB 和 202KB。

    您可以使用imagetruecolortopalette() 减少最终图像的位深度。

    【讨论】: