PHP使用imagecreatetruecolor函数颜色一直为黑色怎么办?php创建真彩色图像为黑色怎么办?前期写过《如何使用纯PHP代码制作水印图片 PHP制作水印图片实例代码》一文之后。
发现我在实例中使用了imagecreatetruecolor()函数创建了一张真彩色图像,后面又imagecolorallocate()函数为这个图像分配了新的RGB的颜色值,但是一直没有成功,图像一直还是黑色。
下面来看看PHP中使用imagecreatetruecolor()函数颜色一直为黑色怎么办?PHP创建真彩色图像为黑色怎么办?
为什么PHP使用imagecreatetruecolor()函数新建的图片是黑色?
从开始学习PHP图像处理函数开始,我并没有完全注意imagecreatetruecolor()函数更加详细的说明,当时在查看PHP手册的时候,更多的是把imagecreatetruecolor()的使用放在了内置的参数说明上。
实际上在PHP手册中关于imagecreatetruecolor()函数说明中已经明确标注了:imagecreatetruecolor()返回一个图像标识符,代表了一幅大小为x_size和y_size的黑色图像。
imagecolorallocate()函数颜色分配失败的原因
如上图所示,imagecreatetruecolor()新建的是一张黑色图像,而为什么使用imagecolorallocate()函数对图像进行颜色分配的时候为什么不能对imagecreatetruecolor()新建的图像进行颜色分配呢?
原因是imagecolorallocate()函数只能对给基于调色板的图像填充背景色,即用imagecreate()函数建立的图像,而对于imagecreatetruecolor()函数创建的图像是无法生效的,因为imagecreatetruecolor()函数中已经规定了图像的颜色是黑色背景。
如何更改PHP创建的黑色背景图像为自定义颜色?
通过以上的分析,我们基本就知道如何更改PHP创建的黑色背景图像为自定义颜色了,就是使用imagecreate()函数替换掉imagecolorallocate()函数就可以了,这样我们就可以在imagecolorallocate()函数中对新建的图像进行背景颜色的分配了。
imagecreate()函数和imagecolorallocate()函数的区别
趁着这次对于这次实例发现的问题,对于imagecreate()函数和imagecolorallocate()函数的区别进行了总结,有以下几点区别:
创建图像的区别
imagecreate()函数创建的是一张基于调色板的图像,而imagecolorallocate()函数创建的是一张真彩色图像。
创建图像的背景颜色的区别
imagecreate()函数创建的是一张空白图像,而imagecolorallocate()函数创建的是一张黑色图像。
图像背景颜色能否被更改的区别
imagecreate()函数创建的图像可以使用imagecolorallocate()函数的RGB值对图像的背景颜色进行自定义,而imagecolorallocate()函数创建的图像则一直会是黑色,不能使用imagecolorallocate()函数的RGB值对图像的背景颜色进行自定义。
以上从为什么PHP使用imagecreatetruecolor()函数新建的图片是黑色、imagecolorallocate()函数颜色分配失败的原因、如何更改PHP创建的黑色背景图像为自定义颜色?
以及imagecreate()函数和imagecolorallocate()函数的区别对PHP图像处理中的创建图像的背景颜色的更改进行了记载,希望通过浏览本文的全部内容能帮助到大家!
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。