没有 Imagick 的图像调整大小并失去透明度

Posted

技术标签:

【中文标题】没有 Imagick 的图像调整大小并失去透明度【英文标题】:Image resize without Imagick and losing transparency 【发布时间】:2011-10-17 03:55:43 【问题描述】:

有没有办法使用以下格式调整图像大小:GIFPNGJP(E)G,而无需安装 Imagick 等其他类?

最重要的是图像不能失去透明度(PNG、GIF),如果是动画,调整大小,但不会丢失GIF 动画。

【问题讨论】:

【参考方案1】:

php 有一个名为GD 的扩展,应该安装

GD Extension Reference

你可以使用。在上面的页面上有一堆例子,可以完全按照你的意愿去做。我个人没有将它用于动画 GIF 图像,但用于其他图像格式。但有一件事是,JPEG 图像在这个库中使用 大量 RAM,因为该库将 JPEG 图像解压缩为其字节格式 - 基本上使其相当于 1670 万色位图。

要查看扩展是否已加载,您可以调用 extension_loaded('GD') 函数,如果已加载,它将返回 TRUE。或者您可以在命令行中键入 php -m 并查看那里的所有扩展。 php -m | grep -i gd 应该这样做。

需要明确的是,GD 库效率不高,因此请重新考虑使用 Imagick 扩展。

编辑: Resize image sample using GD Extension

【讨论】:

谢谢,你能给我一些例子,说明我应该如何使用GD调整图像大小吗?我正在编写自己的 Web 应用程序,我不会强迫用户使用 Imagick(即使它比 GD 好得多)。 试试这个:fliquidstudios.com/2009/05/07/…

以上是关于没有 Imagick 的图像调整大小并失去透明度的主要内容,如果未能解决你的问题,请参考以下文章

当文件大小大于 2mb 时,Imagick 无法调整 GIF 图像的大小

使用 php Imagick 保留背景调整 PNG 的大小

使用imagick PHP在png图像周围添加边框

PHP调整图像大小并保存为透明PNG

使用 C# 调整透明图像的大小

Imagick 制作动画 GIF 不动画?