首页  >  文章  >  php教程  >  php imagecreatetruecolor 创建高清和透明图片代码小结_php基础

php imagecreatetruecolor 创建高清和透明图片代码小结_php基础

WBOY
WBOY原创
2016-05-17 09:01:541407浏览

(PHP 4 >= 4.0.6, PHP 5)
imagecreatetruecolor — 新建一个真彩色图像

说明
resource imagecreatetruecolor ( int $x_size , int $y_size )
imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。

是否定义了本函数取决于 PHP 和 GD 的版本。从 PHP 4.0.6 到 4.1.x 只要加载了 GD 模块本函数一直存在,但是在没有安装 GD2 的时候调用,PHP 将发出致命错误并退出。在 PHP 4.2.x 中此行为改为发出警告而不是错误。其它版本只在安装了正确的 GD 版本时定义了本函数。

新建一个新的 GD 图像流并输出图像

复制代码 代码如下:

header("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100)
or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

Note: 本函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。

php imagecolorallocatealpha 创建透明图片实例
imagecolorallocatealpha(resource $image , int $red , int $green , int $blue, int $alpha )
imagecolorallocatealpha()的行为相同imagecolorallocate()同阿尔法增加透明度参数。


$image
图像资源,通过创造的图像功能,如,一返回imagecreatetruecolor()。

$red
红色分量的价值。

$green
价值的绿色成分。

$blue
蓝色成分的价值。

$alpha
一个介于0和127的价值。 0表示完全不透明,而127表示完全透明。
来看个imagecolorallocatealpha实例教程
复制代码 代码如下:

$size = 300;
$image=imagecreatetruecolor($size, $size);

// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x = 120;
$red_y = 165;
$blue_x = 187;
$blue_y = 125;
$radius = 150;

// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue = imagecolorallocatealpha($image, 0, 0, 255, 75);

// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// don't forget to output a correct header!
header('Content-type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>


php imagecreatetruecolor创建高清图片函数
imagecreatetruecolor()返回一个图像标识符代表指定大小的黑色形象。

根据你的PHP和GD版本中函数定义与否。对于PHP 4.0.6通过4.1.x这个函数总是存在的

,如果广东模块加载,但它要求GD2的情况下被安装了PHP将发出一个致命错误并退出。

用PHP 4.2.x版这种行为是不同的人发出警告,而不是一个错误。其他版本只定义此功

能,

看看实例
复制代码 代码如下:

header ('Content-type: image/png');
$im = @imagecreatetruecolor(120, 20)
or die('Cannot Initialize new GD image stream');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
imagepng($im);
imagedestroy($im);
?>


我提出这方面合作 - 结合一些例子,然后动态生成的文本。但是,与此设置,我能得

到透明背景的工作也。
复制代码 代码如下:

// 设置内容类型

header('Content-type: image/png');

// 创建图像
$im = imagecreatetruecolor(175, 15);
imagesavealpha($im, true);

// 创建一些颜色
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 25, $black);
$trans_colour = imagecolorallocatealpha($im, 0, 0, 0, 127);
imagefill($im, 0, 0, $trans_colour);

// 要绘制的文本
$text = $_GET['text'];
// 将路径替换为你自己的字体路径
$font = 'catriel Regular.ttf';

// 为文本添加一些阴影
imagettftext($im, 9, 0, 13, 16, $black, $font, $text);

// 添加文本
imagettftext($im, 9, 0, 12, 15, $white, $font, $text);

// 与 imagejpeg() 相比,使用 imagepng() 会产生更清晰的文本
imagepng($im);
imagedestroy($im);
?>

ph 利用imagecreatetruecolor动态生成高清图片代码
复制代码代码如下:

//实例用我们用imagecreatetruecolor
header('Content-type: image/png');
$im = @imagecreatetruecolor(120, 20)
or die('无法初始化新的 GD 图像流');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, '一个简单的文本字符串', $text_color);
imagepng($im);
imagedestroy($im);

//我把这个放在一起 - 然后结合更好的例子,动态生成的文本。但是,有了这个,我就能得到透明的背景以及工作。
//实例二imagecreatetruecolor
header('内容类型:图像/png');

// 创建图像
$im = imagecreatetruecolor(175, 15);
imagesavealpha($im, true);

// 创建一些颜色
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 25, $black);
$trans_colour = imagecolorallocatealpha($im, 0, 0, 0, 127);
imagefill($im, 0, 0, $trans_colour);

// 要绘制的文本
$text = $_GET['text'];
// 将路径替换为你自己的字体路径
$font = 'catriel Regular.ttf';

// 为文本添加一些阴影
imagettftext($im, 9, 0, 13, 16, $black, $font, $text);

// 添加文本
imagettftext($im, 9, 0, 12, 15, $white, $font, $text);

// 与 imagejpeg() 相比,使用 imagepng() 会产生更清晰的文本
imagepng($im);
imagedestroy($im);

/*
实例三创建透明图片

如果你想创建一个PNG*透明*图片,其中的背景是完全透明的,所有行动都发生在消息中,除此之外,然后执行以下操作:
*/
$png = imagecreatetruecolor(800, 600);
imagesavealpha($png, true);

$trans_colour = imagecolorallocatealpha($png, 0, 0, 0, 127);
imagefill($png, 0, 0, $trans_colour);

$red = imagecolorallocate($png, 255, 0, 0);
imagefilledellips教程e($png, 400, 300, 400, 300, $red);

header("内容类型:image/png");
imagepng($png);

你要做的就是创建一个真正的彩色图像,确保阿尔法保存状态是,然后填写一个颜色,也经历了阿尔法级别设置为完全透明(127)的图像。

从上面的代码产生的巴新将有一个完全透明的背景(一个红色创意拖到Photoshop中的图像,以了解自己)
从上面的代码生成的PNG将有一个红色圆圈全透明背景(将图像拖入Photoshop中亲自查看)
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn