PHP中的画布详解

小云云
小云云asal
2018-03-27 15:48:365306semak imbas

本文主要和大家分享PHP中的画布详解,PHP中的图像处理技术GD,希望能帮助到大家。

创建新画布--资源型数据(可以操作图像资源)

    ImageCreate(画布宽,画布高);创建基于调色板的画布。

           ImageCreateTrueColor(画布宽,画布高);创建真彩画布。

基于图片创建画布

             ImageCreateFromFPG(图片地址);

             ImageCreateFromPNG(图片地址);

             ImageCreateFromGIF(图片地址);

操作画布

            分配颜色:如果需要在画布上使用某个颜色,应该先将颜色分配到画布上。

            颜色标识:

                        $color=ImageColorAllocate(画布资源,R,G,B);RGB为三原色,大小为0~255;

            填充画布:

                        ImageFill(画布资源,填充位置x,填充位置y,颜色标识);填充时对于与填充点连续且颜色相同的点进行填充。

            将字符串写到画布上:

                        ImageString(画布资源,字体,位置x,位置y,字符串内容,字符颜色);

                        字体为内置字体,大小为1~5号。

                        字符颜色为前面颜色分配时所写的变量。

            得到打开的画布大小:

                        ImageSX(画布资源);得到画布的宽。

                        ImageSY(画布资源);得到画布的高。

            得到内置字体的大小:

                        ImageFontWidth(字体号);得到内置字体的宽度。

                        ImageFontHeight(字体号);得到内置字体的高低。

输出画布         

    1.输出到图片文件。

    2.直接输出到页面。

       ImagePNG(画布资源[,文件地址]);  

        ImageJPEG(画布资源[,文件地址]);  

        ImageGIF(画布资源[,文件地址]);  

实例:验证码

<?php
header(&#39;Content-Type:image/jpg&#39;);
$chars=&#39;ABCDEFGHIJKLMNPQRSTUVWXYZ123456789&#39;;
$chars_length=strlen($chars);
$code_length=4;
$code=&#39;&#39;;
for($i=0;$i<$code_length;$i++){
	$rand_index=mt_rand(0,$chars_length-1);
	$code.=$chars[$rand_index];
}

//存储于session,用于验证。
session_start();
$_SESSION[&#39;captcha_code&#39;]=$code;


//背景图。
$bg_file=&#39;./captcha/captcha_bg&#39;.mt_rand(1,5).&#39;.jpg&#39;;
$img=ImageCreateFromJPEG($bg_file);
//随机分发颜色
$chars_color=mt_rand(1,2)==1?imagecolorallocate($img,0,0,0):imagecolorallocate($img,255,255,255);
//将字符串写到画布上。
$img_width=ImageSX($img);
$img_height=ImageSY($img);
$font_width=ImageFontWidth(5)*4;
$font_height=ImageFontHeight(5);
$code_width=($img_width-$font_width)/2;
$code_height=($img_height-$font_height)/2;
ImageString($img,5,$code_width,$code_height,$code,$chars_color);
ImageJPEG($img);


Atas ialah kandungan terperinci PHP中的画布详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP实现发送HTTP请求Artikel seterusnya:非常有用的PHP函数