使用PHP中的GD库在图像上绘图 [英] Drawing on image with the GD library in PHP

查看:117
本文介绍了使用PHP中的GD库在图像上绘图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个生成随机模式图像的代码。它创建一个具有给定宽度和高度的图像,并用小的40x40像素矩形填充它。
这是我的代码:

I have created a code to generate a random pattern image. it creates an image with given width and height and fills it with small 40x40 pixel rectangles. this is my code:

<?php 

$width = 1000; 
$height = 600;

$image_p = imagecreate($width, $height); 
$baseR = 255 - rand(0, 100);
$baseG = 255 - rand(0, 100);
$baseB = 255 - rand(0, 100);

for ($i = 0; $i <= floor($width / 40); $i++){
for ($j = 0; $j <= floor($height / 40); $j++){
  $val = floor(100 * (rand(0, 100) / 100));
  $r = $baseR - $val;
  $g = $baseG - $val;
  $b = $baseB - $val;
  $color = imagecolorallocate($image_p, $r, $g, $b); 
  imagefilledrectangle($image_p, $i * 40, $j * 40, (($i + 1) * 40), (($j + 1) * 40), $color);

}
}

imagejpeg($image_p, 'my_dir/test.jpg'); 

?>

当没有问题时我将宽度设置为640,高度设置为400.但如果我将宽度设置为1000,高度设置为800,则图像右侧将有一个空白区域,不会被矩形覆盖。
我在delphi中实现了相同的代码并且它工作得很好,但在PHP中......!

there's no problem when i set the width to a value like 640 and the height to 400. but if i set the width to 1000 and the height to 800, there will be a blank area on the right side of the image which is not covered by rectangles. I implemented the same code in delphi and it worked perfectly, but in PHP...!

推荐答案

更改 imagecreate imagecreatetruecolor

你正在创建一个基于调色板图像最多255种颜色在最后分配的颜色已用尽,并且它会在剩余的块上重新调整调色板上的最后一种颜色。

You're creating a palette based image with 255 colors max. You're running out of colors to allocate at the end and it's recycling the last color on the palette for the remainder of the blocks.

这篇关于使用PHP中的GD库在图像上绘图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆