这次要声称的图片比第一次的要复杂多了,但是,其实只是规则变化而已。大家看好了代码中的规则部分即可。drwaing部分和上篇日志中的是一样的。
先来看看生成的效果:
代码如下:
<pre class="brush:php;"> function drawing($arr = array()) {
set_time_limit(0);
$image = imagecreate(count($arr[0]), count($arr));
imagecolorallocate($image, 255, 255, 255);
$color = imagecolorallocate($image, 0, 0, 0);
foreach ($arr as $i => $arr_line) {
foreach ($arr_line as $j => $arr_pixel) {
if( $arr_pixel == 1 ) {
imagesetpixel($image, $i, $j, $color);
}
}
}
header("Content-type: image/png");
imagepng($image);
}
$size = 301;
$each_size = 30;
$arr = array();
for ($i = 0; $i < $size; $i++) {
$arr[$i] = array();
for ($j = 0; $j < $size; $j++) {
if( $i % $each_size == 0
|| $j % $each_size == 0
|| ($i - $j) % $each_size == 0
|| ($i + $j - $size) % $each_size == 0
) {
$arr[$i][$j] = 1;
} else {
$arr[$i][$j] = 0;
}
}
}
drawing($arr);
```
php 图像 图形 生成 imagepng header imagecolorallocate imagesetpixel imagecreate