PHP:如何将非真彩色图像转换为真彩色图像?

时间:2009-10-16 14:56:08

标签: php image-processing gd

如何用GD做到这一点?

3 个答案:

答案 0 :(得分:7)

Create a new truecolor image resource(t)将same dimensions作为源图像,然后copy(s)到(t)。

e.g。 (没有错误处理):

$imgSource = imagecreatefromgif('xyz.gif');
$width = imagesx($imgSource);
$height = imagesy($imgSource);
$imgTC = imagecreatetruecolor($width, $height);
imagecopy($imgTC, $imgSource, 0, 0, 0, 0, $width, $height);
// save or send $imgTC

您将在内存中以gd2格式显示这两个图像(每个像素4个字节?5?),因此在尝试使用较大的图像之前,最好先检查memory_limit设置。

答案 1 :(得分:2)

从PHP 5.5开始,这是一个快速,简单且内存不足的解决方案:只需使用imagepalettetotruecolor PHP函数:

$imgSource = imagecreatefromgif('xyz.gif');
if (!imageistruecolor($imgSource)) {
    imagepalettetotruecolor($imgSource);
}

答案 2 :(得分:1)

您只需使用imagecreatetruecolor创建新图片,然后imagecopy将基于调色板的图像添加到其中。