gpt4 book ai didi

php - imagecreatetruecolor 是做什么用的?

转载 作者:行者123 更新时间:2023-12-04 04:54:12 24 4
gpt4 key购买 nike

根据

http://php.net/manual/en/function.imagecreatetruecolor.php

it creates a new true color image

但再往下是状态:

... returns an image identifier representing a black image of the specified size.

这是我用于图像上传(创建 JPEG)的一些样板代码,如下所示:

private function createFinalJPEG($max, $path)
{
$this->makeDimensions($max);
$this->image_y = imagecreatetruecolor($this->new_width, $this->new_height);
imagecopyresampled($this->image_y, $this->image_z, 0, 0, 0, 0,
$this->new_width, $this->new_height,
$this->original_width, $this->original_height);
imagejpeg($this->image_y, $path);
imagedestroy($this->image_y);
}

一般来说,我需要这么多中间图像表示来生成最终文件吗?

imagecreatetruecolor 是否只是创建一个哑黑色图像以用作 imagecopyresampled 可以使用的占位符?

作为回应,这里的答案是 image_z 是如何创建的:

private function createImageZ($path)
{
$type_creators = array(
'image/gif' => 'imagecreatefromgif',
'image/pjpeg' => 'imagecreatefromjpeg',
'image/jpeg' => 'imagecreatefromjpeg',
'image/png' => 'imagecreatefrompng');
if(array_key_exists($this->fileType, $type_creators))
{
$this->image_z = $type_creators[$this->fileType]($path);
return true;
}
return false;
}

最佳答案

“这么多”?只有一个。由于无法更改 Canvas 大小,您必须创建一个新 Canvas (图像资源)来调整图像大小。

现在,关于 imagecreatetruecolorimagecreate 相比的作用,您需要了解两种主要的颜色表示类型:

  1. 索引颜色,其中文件由调色板组成,图像的其余部分类似于一本“按数字填色”的书。这些索引除了指代该索引中的一种颜色外没有任何意义。

  2. 真彩色,图像的每个像素都完全指定了它的颜色。

这意味着即时的索引颜色图像比真彩色图像小四倍(颜色索引使用 1 个字节而不是整个颜色使用 4 个字节),但是它仅限于 256 种不同的颜色,并且通常其中之一是为透明保留的。

现在,由于您使用的是 JPEG,因此您需要使用 imagecreatetruecolor,因为 JPEG 压缩非常需要它。 JPEG 不支持索引图像。

另一方面,GIF 仅支持索引颜色。 PNG 支持这两种格式(以及许多更晦涩的格式)。

关于php - imagecreatetruecolor 是做什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17002618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com