
266
|
第
10
章
图片
一般不需要直接操作颜色值。一个应用场景是要生成彩色测试图片来展示红、绿、蓝的
纯色调,例如
:
$image = imagecreatetruecolor(256, 60);
for ($x = 0; $x < 256; $x++) {
imageline($image, $x, 0, $x, 19, $x);
imageline($image, 255 - $x, 20, 255 - $x, 39, $x << 8);
imageline($image, $x, 40, $x, 59, $x<<16);
}
header("Content-Type: image/png");
imagepng($image);
图
10-15
是彩色测试程序的输出。
图10-15:彩色测试
显然,这看起来比黑白要丰富多彩,你可以自己尝试一下这个例子。在这个特殊的例子中,
计算像素颜色比调用
imagecolorallocatealpha()
分配每个颜色要简单很多。
图片的文本形式
用
imagecolorat()
函数可以遍历图片中的每个像素,并且可以用这些颜色数据做一些有
意思的事情。示例
10-14
按照
php-tiny.jpg
中的每个像素及其颜色来打印
#
。
示例 10-14:把图片转换为文本
<html><body bgcolor="#000000">
<tt><?php
$image = imagecreatefromjpeg("php_logo_tiny.jpg");
$dx = imagesx($image); ...