用php写一个 从上到下 透明渐变 图片 最上面为不透色 宽度为500 高度为50
时间: 2024-02-25 14:59:43 浏览: 16
以下是使用PHP GD库实现的从上到下透明渐变图片代码:
```php
// 创建图片
$image = imagecreatetruecolor(500, 50);
// 定义颜色
$color = imagecolorallocate($image, 255, 255, 255); // 不透明白色
// 绘制背景
imagefilledrectangle($image, 0, 0, 500, 50, $color);
// 绘制渐变
for ($i = 0; $i < 50; $i++) {
$alpha = intval(127 * $i / 50); // 计算透明度
$gradient_color = imagecolorallocatealpha($image, 255, 255, 255, $alpha); // 渐变色
imagefilledrectangle($image, 0, $i, 500, $i + 1, $gradient_color); // 绘制一行
}
// 输出图片
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
```
这段代码会生成一张宽度为500,高度为50的从上到下透明渐变图片,最上面为不透明白色。
相关问题
用php写一个 从左到右透明渐变 图片 最右侧为不透色 宽度为500 高度为50
好的,以下是 PHP 代码实现:
```php
<?php
// 创建一个宽度为 500,高度为 50 的空白图片
$image = imagecreatetruecolor(500, 50);
// 定义渐变起始颜色和结束颜色
$start_color = imagecolorallocatealpha($image, 255, 255, 255, 0); // 完全透明的白色
$end_color = imagecolorallocatealpha($image, 255, 255, 255, 127); // 半透明的白色
// 循环遍历每一列像素填充颜色实现渐变效果
for ($x = 0; $x < 500; $x++) {
$alpha = (int) ($x / 500 * 127); // 计算当前列的透明度
$color = imagecolorallocatealpha($image, 255, 255, 255, $alpha); // 计算当前列的颜色
imageline($image, $x, 0, $x, 49, $color); // 填充当前列的颜色
}
// 设置最右侧为不透明的白色
imagefilledrectangle($image, 499, 0, 499, 49, $start_color);
// 设置输出图片的格式为 PNG
header('Content-Type: image/png');
// 输出图片到浏览器
imagepng($image);
// 销毁图片资源
imagedestroy($image);
?>
```
这段代码使用 PHP GD 库创建了一个宽度为 500,高度为 50 的空白图片,并使用 imageline() 函数循环遍历每一列像素填充颜色实现渐变效果。最后使用 imagefilledrectangle() 函数将最右侧的像素设置为不透明的白色。最终输出的图片格式为 PNG,可以直接在浏览器中查看或下载。
用php写一个 从左到右透明渐变 图片 最右侧为不透色 宽度为50 高度为600
好的,以下是 PHP 代码实现:
```php
<?php
// 创建一个宽度为50,高度为600的真彩色图像
$image = imagecreatetruecolor(50, 600);
// 定义渐变的起始颜色和结束颜色
$start_color = imagecolorallocatealpha($image, 0, 0, 0, 127); // 透明黑色
$end_color = imagecolorallocate($image, 255, 255, 255); // 白色
// 循环绘制每个像素
for ($y = 0; $y < 600; $y++) {
// 计算当前行的透明度
$alpha = intval($y / 600 * 127); // 透明度从0到127渐变
// 在当前行绘制从左到右的渐变
$color = imagecolorallocatealpha(
$image,
intval($alpha / 127 * (255 - 0) + 0),
intval($alpha / 127 * (255 - 0) + 0),
intval($alpha / 127 * (255 - 0) + 0),
$alpha
);
imageline($image, 0, $y, 49, $y, $color);
// 在最右侧绘制不透明的颜色
imagesetpixel($image, 49, $y, $end_color);
}
// 输出图像并释放内存
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
```
以上代码会输出一个 PNG 格式的图片,可以通过浏览器访问该 PHP 文件来查看效果。如果需要保存到本地文件,可以使用 `imagepng($image, 'filename.png')` 函数。