【问题标题】:PHP GD issues with ImageCreateTrueColor and PNGsImageCreateTrueColor 和 PNG 的 PHP GD 问题
【发布时间】:2011-02-08 12:40:56
【问题描述】:

我正在使用 GD 图像库函数 ImageCopyResampled() 调整 PNG 图像的大小。一切正常,我什至可以使用 ImageCreateTrueColor() 来保持 alpha 混合透明度,而不是使用 ImageCreate() 来创建调整大小的图像。

问题是,如果我使用 ImageCreateTrueColor() 而不是 ImageCreate(),PNG 文件的文件大小会从 80kb 增加到 150kb。如果我使用 ImageCreate() 文件大小保持不变,但颜色会变差!

所以我的问题是,如何在不增加文件大小的情况下调整 PNG 图像大小时保留 alpha 混合?

哦,我正在缩小 PNG 的尺寸。

【问题讨论】:

    标签: php png transparency gd alpha


    【解决方案1】:

    使用imagecreate(),您正在创建一个索引颜色的PNG 文件,而使用imagecreatetruecolor(),您正在创建一个24 位彩色PNG 文件。当然,真彩色图像的重采样质量会更好,因为重采样时可以使用更大范围的颜色。使用imagecreate(),系统只能使用更小的调色板。

    您可以使用 Photoshop 或 Gimp 进行尝试,以不同的颜色模式(索引和 RGB)缩放图像。不幸的是,这是游戏的本质——存储的颜色越多,文件越大。

    我不确定它是否会有所不同,但您可以尝试使用imagecopyresampled() 复制到真彩色资源(来自imagecreatetruecolor()),然后复制(但不重新采样) /em> 到调色板图像资源。这样,调色板是根据重新采样的结果确定的。不过,我不确定您是否能够保留 Alpha 通道。

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 2022-07-17
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      相关资源
      最近更新 更多