php如何用GD库读取本地19201080图片使它从上到下渐变透明
以下是一个实现从上到下渐变透明的PHP GD库代码示例:
// 读取本地图片
$image = imagecreatefromjpeg('image.jpg');
// 获取图片宽高
$width = imagesx($image);
$height = imagesy($image);
// 创建一个透明度从上到下渐变的图像
$gradient = imagecreatetruecolor($width, $height);
for ($y = 0; $y < $height; $y++) {
$alpha = 127 - floor($y / $height * 127);
$color = imagecolorallocatealpha($gradient, 255, 255, 255, $alpha);
imageline($gradient, 0, $y, $width, $y, $color);
}
// 将渐变图像与原始图像进行混合
imagecopymerge($image, $gradient, 0, 0, 0, 0, $width, $height, 100);
// 输出混合后的图像
header('Content-Type: image/jpeg');
imagejpeg($image);
解释:
- 使用
imagecreatefromjpeg()函数读取本地JPEG图片,并将其存储在$image变量中。 - 使用
imagesx()和imagesy()函数获取图片的宽度和高度。 - 使用
imagecreatetruecolor()函数创建一个与原始图像宽度和高度相同的渐变图像。 - 使用
for循环从上到下遍历渐变图像的每一行,并根据当前行数计算透明度。透明度从0(完全不透明)到127(完全透明)渐变。 - 使用
imagecolorallocatealpha()函数创建一个具有当前行透明度的颜色,并使用imageline()函数在当前行上绘制一条水平线。 - 使用
imagecopymerge()函数将渐变图像与原始图像进行混合。最后一个参数100表示完全不透明。 - 使用
header()函数设置输出内容类型为JPEG,并使用imagejpeg()函数输出混合后的图像。
注意:以上代码示例仅适用于JPEG图片,如果要处理其他格式的图片,需要相应地更改imagecreatefromjpeg()和imagejpeg()函数
原文地址: http://www.cveoy.top/t/topic/c7Xx 著作权归作者所有。请勿转载和采集!