php-GD库的函数使用

jopen 10年前

    <?php             //getimagesize - 取得图片的大小[即长与宽]            //print_r(getimagesize("./logo_i.gif"));            //Array ( [0] => 240 [1] => 124 [2] => 1 [3] => width="240" height="124" [bits] => 8 [channels] => 3 [mime] => image/gif )                     //image_type_to_mime_type - 取得 getimagesize,exif_read_data,exif_thumbnail,exif_imagetype 所返回的图像类型的 MIME 类型            //$aa = getimagesize("./logo_i.gif");            //print_r(image_type_to_mime_type ($aa));                        //imagearc — 画椭圆弧            /*bool imagearc(resource $image ,int $cx ,int $cy ,int $w ,int $h , int $s , int $e , int $color);           //$image:资源           //$cx:左边离圆心的位置           //$cy:上边离圆心的位置           //$w:圆形的直径左右           //$h:圆形的直径上下           //$s:0度顺时针画           //$e:360           //$color:圆形的颜色           // 创建一个 200X200 的图像           $img = imagecreatetruecolor(200, 200);           // 分配颜色           $white = imagecolorallocate($img, 255, 255, 255);           $black = imagecolorallocate($img, 0, 0, 0);           // 画一个白色的圆           imagearc($img, 100, 100, 150, 150, 0, 360, $white);           // 将图像输出到浏览器           header("Content-type: image/png");           imagepng($img);           // 释放内存           imagedestroy($img);*/                    //imagechar — 水平地画一个字符            /*bool imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color )           $image:资源           $font:字体大小           $x:文字离左边框的距离           $y:文字离上边框的距离           $c:将字符串 c 的第一个字符画在 image 指定的图像中           $color:文字的颜色           $im = imagecreate(100,100);           $string = 'php';           $bg = imagecolorallocate($im, 255, 255, 255);           $black = imagecolorallocate($im, 0, 0, 0);           // prints a black "P" in the top left corner           imagechar($im, 1, 0, 0, $string, $black);           header('Content-type: image/png');           imagepng($im);*/                    //imagecharup — 垂直地画一个字符            /*bool imagecharup ( resource $image , int $font , int $x , int $y , string $c , int $color )           $image:资源           $font:字体大小           $x:文字离左边框的距离           $y:文字离上边框的距离           $c:将字符串 c 的第一个字符画在 image 指定的图像中           $color:文字的颜色           $im = imagecreate(100,100);           $string = 'Note that the first letter is a N';           $bg = imagecolorallocate($im, 255, 255, 255);           $black = imagecolorallocate($im, 0, 0, 0);           // prints a black "Z" on a white background           imagecharup($im, 3, 10, 10, $string, $black);           header('Content-type: image/png');           imagepng($im);           */                        //imagecolorallocate — 为一幅图像分配颜色            /*int imagecolorallocate ( resource $image , int $red , int $green , int $blue )           $image:图片资源           $red,$green,$blue分别是所需要的颜色的红,绿,蓝成分。这些参数是 0 到 255 的整数或者十六进制的 0x00 到 0xFF           第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色           $im = imagecreate( 100, 100);           // 背景设为红色           $background = imagecolorallocate($im, 255, 0, 0);           // 设定一些颜色           $white = imagecolorallocate($im, 255, 255, 255);           $black = imagecolorallocate($im, 0, 0, 0);           // 十六进制方式           $white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);           $black = imagecolorallocate($im, 0x00, 0x00, 0x00);           header('Content-type: image/png');           imagepng($im);           */                    //imagecolorallocatealpha — 为一幅图像分配颜色 + alpha            /*int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )           imagecolorallocatealpha() 的行为和 imagecolorallocate() 相同,但多了一个额外的透明度参数 alpha,其值从 0 到 127。0 表示完全不透明,127 表示完全透明。           $size = 300;           $image=imagecreatetruecolor($size, $size);           // 用白色背景加黑色边框画个方框           $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;           // 用 alpha 值分配一些颜色           $yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);           $red    = imagecolorallocatealpha($image, 255, 0, 0, 75);           $blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);           // 画三个交迭的圆           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);           // 不要忘记输出正确的 header!           header('Content-type: image/png');           // 最后输出结果           imagepng($image);           imagedestroy($image);           */                    //imagecolordeallocate — 取消图像颜色的分配            /*bool imagecolordeallocate ( resource $image , int $color )           imagecolordeallocate() 函数取消先前由 imagecolorallocate() 或 imagecolorallocatealpha() 分配的颜色。            $im = imagecreate( 100, 100);           // 背景设为红色           $background = imagecolorallocate($im, 255, 0, 0);           // 设定一些颜色           $white = imagecolorallocate($im, 255, 255, 255);           imagecolordeallocate($im,$white);           header('Content-type: image/png');           imagepng($im);*/                        //imagecolorexact — 取得指定颜色的索引值            /*int imagecolorexact ( resource $image , int $red , int $green , int $blue )           返回图像调色板中指定颜色的索引值。            如果颜色不在图像的调色板中,返回 -1。            如果从文件创建了图像,只有图像中使用了的颜色会被辨析。仅出现在调色板中的颜色不会被辨析。           $im = imagecreate( 100, 100);           // 背景设为红色           $background = imagecolorallocate($im, 255, 0, 0);           // 设定一些颜色           $white = imagecolorallocate($im, 255, 255, 255);           $aa = imagecolorexact ($im, 255, 0, 0);           echo $aa;   //不存在返回-1*/                    //imagecolorset — 给指定调色板索引设定颜色            /*void imagecolorset ( resource $image , int $index , int $red , int $green , int $blue )           本函数将调色板中指定的索引设定为指定的颜色。           $im = imagecreate( 100, 100);           $background = imagecolorallocate($im, 255, 0, 0);           for($c = 0;$c<50;$c++){               imagecolorset($im,$c,255,255,255 );           }           header('Content-type: image/png');           imagepng($im);*/                        //imagecolortransparent — 将某个颜色定义为透明色            /*int imagecolortransparent ( resource $image [, int $color ] )           imagecolortransparent() 将 image 图像中的透明色设定为 color。image 是 imagecreatetruecolor() 返回的图像标识符,color 是 imagecolorallocate() 返回的颜色标识符。            $im = imagecreate(100,100);           $background = imagecolorallocate($im, 0, 0, 0);           imagecolortransparent ($im,$background);           header('Content-type: image/png');           imagepng($im);*/                ?>  
    <?php             //imagecopy — 拷贝图像的一部分粘贴到某图像上            /*bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )           $dst_im:被粘贴的图片           $src_im:复制图片的一部分的图片           $dst_x:粘贴到图片上的图片离左边的距离           $dst_y:粘贴到图片上的图片离上边的距离           $src_x:复制图片时离左边多大距离开始复制           $src_y:复制图片时离上边多大距离开始复制           $src_w:复制图片的宽           $src_h:复制图片的长           $im = imagecreate(100,100);           $image = imagecreatefromjpeg('1.jpg');            imagecolorallocate($im, 255, 0, 0);           imagecopy($im,$image,10,10,100,100,100,100);           header('Content-type: image/png');           imagepng($im);*/                        //imagecopymerge — 拷贝并合并图像的一部分(也就是传说中的图片属性)            /*bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )           $dst_im:被粘贴的图片           $src_im:复制图片的一部分的图片           $dst_x:粘贴到图片上的图片离左边的距离           $dst_y:粘贴到图片上的图片离上边的距离           $src_x:复制图片时离左边多大距离开始复制           $src_y:复制图片时离上边多大距离开始复制           $src_w:复制图片的宽           $src_h:复制图片的长           $pct:透明度0-100数字越小越透明,当为0时就完全看不见了           $im = imagecreatefromjpeg('1.jpg');            $image = imagecreatefrompng('code.png');           imagecopymerge ($im,$image,10,10,0,0,100,100,10);           header('Content-type: image/png');           imagejpeg($im);           */                    //imagecopymergegray — 用灰度拷贝并合并图像的一部分            /*bool imagecopymergegray ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )           $dst_im:被粘贴的图片           $src_im:复制图片的一部分的图片           $dst_x:粘贴到图片上的图片离左边的距离           $dst_y:粘贴到图片上的图片离上边的距离           $src_x:复制图片时离左边多大距离开始复制           $src_y:复制图片时离上边多大距离开始复制           $src_w:复制图片的宽           $src_h:复制图片的长           $pct:灰透明0-100数字越小越透明,当为0时就是一个灰色图片           $im = imagecreatefromjpeg('1.jpg');            $image = imagecreatefrompng('code.png');           imagecopymergegray  ($im,$image,10,10,0,0,100,100,0);           header('Content-type: image/png');           imagejpeg($im);           */                        //imagecopyresampled — 重采样拷贝部分图像并调整大小            /*bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )           $dst_im:被粘贴的图片           $src_im:复制图片的一部分的图片           $dst_x:粘贴到图片上的图片离左边的距离           $dst_y:粘贴到图片上的图片离上边的距离           $src_x:复制图片时离左边多大距离开始复制           $src_y:复制图片时离上边多大距离开始复制           $dst_w:被粘贴的图片给留的宽度           $dst_h:被粘贴的图片给留的宽度           $src_w:复制图片的宽           $src_h:复制图片的长           $im = imagecreatefromjpeg('1.jpg');            $image = imagecreatefrompng('code.png');           imagecopyresampled ($im,$image,0,0,0,0,100,100,100,100);           header('Content-type: image/png');           imagejpeg($im); */                    //imagecopyresized — 拷贝部分图像并调整大小            /*bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )           $dst_im:被粘贴的图片           $src_im:复制图片的一部分的图片           $dst_x:粘贴到图片上的图片离左边的距离           $dst_y:粘贴到图片上的图片离上边的距离           $src_x:复制图片时离左边多大距离开始复制           $src_y:复制图片时离上边多大距离开始复制           $dst_w:被粘贴的图片给留的宽度           $dst_h:被粘贴的图片给留的宽度           $src_w:复制图片的宽           $src_h:复制图片的长           $im = imagecreatefromjpeg('1.jpg');            $image = imagecreatefrompng('code.png');           imagecopyresized  ($im,$image,0,0,0,0,100,100,100,100);           header('Content-type: image/png');           imagejpeg($im);*/                    //imagecreate — 新建一个基于调色板的图            /*resource imagecreate ( int $x_size , int $y_size )           $x_size:图片的宽           $y_size:图片的长           $im = imagecreate(100,50);           header('Content-type: image/png');           imagejpeg($im);           */                        //imagecreatefromgd2 — 从 GD2 文件或 URL 新建一图像            //imagecreatefromgd2part — 从给定的 GD2 文件或 URL 中的部分新建一图像            //imagecreatefromgd — 从 GD 文件或 URL 新建一图像            //imagecreatefromgif — 从 GIF 文件或 URL 新建一图像            //imagecreatefromjpeg — 从 JPEG 文件或 URL 新建一图像            //imagecreatefrompng — 从 PNG 文件或 URL 新建一图像            //imagecreatefromstring — 从字符串中的图像流新建一图像            //imagecreatefromwbmp — 从 WBMP 文件或 URL 新建一图像            //imagecreatefromxbm — 从 XBM 文件或 URL 新建一图像            //imagecreatefromxpm — 从 XPM 文件或 URL 新建一图像            /*以上都是根据不同类型获取文件新建一个图像*/                    //imagecreatetruecolor — 新建一个真彩色图像            /*resource imagecreatetruecolor ( int $x_size , int $y_size )           imagecreatetruecolor() 返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。            $im = imagecreatetruecolor(100,100);           header('Content-type: image/png');           imagejpeg($im);           */                    //imagedestroy — 销毁一图像            /*bool imagedestroy ( resource $image )           $im = imagetcreate(100,100);           imagedestroy($im);           */                    //imageellipse — 画一个椭圆            /*bool imageellipse ( resource $image , int $cx , int $cy , int $w , int $h , int $color )           $image:资源           $cx:左边离圆心的位置           $cy:上边离圆心的位置           $w:圆形的直径左右           $h:圆形的直径上下           $color:线的颜色           $image = imagecreatetruecolor(400, 400);           // 选择椭圆的颜色           $col_ellipse = imagecolorallocate($image, 255, 255, 0);           // 画一个椭圆           imageellipse($image, 200, 200, 350, 350, $col_ellipse);           // 输出图像           header("Content-type: image/png");           imagepng($image);           */                    //imagefill — 区域填充            /*bool imagefill ( resource $image , int $x , int $y , int $color )           imagefill() 在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)。            $im = imagecreatetruecolor(100, 100);           // 将背景设为红色           $red = imagecolorallocate($im, 255, 0, 0);           imagefill($im, 50, 50, $red);           header('Content-type: image/png');           imagepng($im);           imagedestroy($im);           */                        //imagefilledarc — 画一椭圆弧且填充            /*bool imagefilledarc ( resource $image , int $cx , int $cy , int $w , int $h , int $s , int $e , int $color , int $style )           $image:资源           $cx:左边离圆心的位置           $cy:上边离圆心的位置           $w:圆形的直径左右           $h:圆形的直径上下           $s:0度顺时针画           $e:360           $color:填充的颜色           $style:类型以下是4中类型           IMG_ARC_PIE 和 IMG_ARC_CHORD 是互斥的;           IMG_ARC_CHORD 只是用直线连接了起始和结束点,           IMG_ARC_PIE 则产生圆形边界(如果两个都用,IMG_ARC_CHORD 生效)。           IMG_ARC_NOFILL 指明弧或弦只有轮廓,不填充。           IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连,           和 IMG_ARC_NOFILL 一起使用是画饼状图轮廓的好方法(而不用填充)。            $im = imagecreatetruecolor(200,200);           $red = imagecolorallocate($im, 255, 255, 0);           imagefilledarc ($im,100,100,150,150,0,360,$red,IMG_ARC_PIE);           header('Content-type: image/png');           imagepng($im);           imagedestroy($im);           */        ?>  
    <?php            //imagefilledellipse — 画一椭圆并填充            /*bool imagefilledellipse ( resource $image , int $cx , int $cy , int $w , int $h , int $color )           $image:图片资源           $cx:左边离圆心的位置           $cy:上边离圆心的位置           $w:圆形的直径(左右方向)           $h:圆形的直径(上下方向)           $color:填充的颜色           $im = imagecreatetruecolor(100,100);           $red = imagecolorallocate($im,0,255,0);           imagefilledellipse($im,50,50,80,80,$red);           header('Content-type: image/png');           imagepng($im);           */                    //imagefilledpolygon — 画一多边形并填充            /*bool imagefilledpolygon ( resource $image , array $points , int $num_points , int $color )           $image:图片资源           $points:参数是一个按顺序包含有多边形各顶点的 x 和 y 坐标的数组           $num_points:参数是顶点的总数,必须大于 3           $color:颜色           $im = imagecreatetruecolor(200,200);           $value = array( 25,40,36,53,87,12,45,98,56,23);           $red = imagecolorallocate($im,255,0,0);           imagefilledpolygon($im,$value,5,$red);           header('Content-type: image/png');           imagepng($im);           */                    //imagefilledrectangle — 画一矩形并填充            /*bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )           $image:图片资源           $x1:点到左边的距离           $y1:点到上边的距离           $x2:点到左边的距离           $y2:点到上边的距离           $color:填充的颜色           $im = imagecreatetruecolor(200,200);           $red = imagecolorallocate($im,255,0,0);           imagefilledrectangle($im,10,10,190,190,$red);           header('Content-type:image/png');           imagepng($im);           */                        //imagefontheight — 取得字体高度            /*$font_size = 1;           $a = imagefontheight($font_size);           echo $a;           */                    //imagefontwidth — 取得字体宽度            /*$font_size = 1;           $b = imagefontwidth($font_size);           echo $b;           */                        //imageline — 画一条线段            /*bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )           $image:图片资源           $x1:点到左边的距离           $y1:点到上边的距离           $x2:点到左边的距离           $y2:点到上边的距离           $color:线段的颜色           $im = imagecreatetruecolor(200,200);           $red = imagecolorallocate($im,255,0,0);           imageline($im,10,10,100,100,$red);           header('Content-type:image/png');           imagepng($im);           */                        //imagepolygon — 画一个多边形            /*bool imagepolygon ( resource $image , array $points , int $num_points , int $color )           $image:图片资源           $points:参数是一个按顺序包含有多边形各顶点的 x 和 y 坐标的数组           $num_points:是顶点的总数。大于3           $color:线段的颜色           $im = imagecreatetruecolor(200,200);           $red = imagecolorallocate($im,255,0,0);           $value = array(13,45,23,56,23,45,78,99);           imagepolygon($im,$value,4,$red);           header('Content-type:image/png');           imagepng($im);           */                        //imagerectangle — 画一个矩形            /*bool imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $col )           $image:图片资源           $x1:点到左边的距离           $y1:点到上边的距离           $x2:点到左边的距离           $y2:点到上边的距离           $col:线段的颜色           $im = imagecreatetruecolor(200,200);           $red = imagecolorallocate($im,255,0,0);           imagerectangle($im,10,10,100,100,$red);           header('Content-type:image/png');           imagepng($im);           */                        //imagerotate — 用给定角度旋转图像            /*resource imagerotate ( resource $src_im , float $angle , int $bgd_color [, int $ignore_transparent ] )           $src_im:资源图片           $angle:旋转的度数           $bgd_color:背景颜色           $source = imagecreatefromjpeg('1.jpg');           $rotate = imagerotate($source,45, 26);           header('Content-type: image/jpeg');           imagejpeg($rotate);            */                    //imagesetpixel — 画一个单一像素            /*bool imagesetpixel ( resource $image , int $x , int $y , int $color )           $image:图片资源           $x:点到左边的距离           $y:点到上边的距离           $color:点的颜色           $im = imagecreatetruecolor(100,100);           $red = imagecolorallocate($im,255,0,0);           imagesetpixel($im,50,50,$red);           header('Content-type: image/jpeg');           imagejpeg($im);            */                    //imagesetstyle — 设定画线的风格            /*bool imagesetstyle ( resource $image , array $style )           $image:图片资源           $style:style 参数是像素组成的数组。下面的示例脚本在画布上从左上角到右下角画一行虚线:            header("Content-type: image/jpeg");           $im  = imagecreatetruecolor(100, 100);           $w   = imagecolorallocate($im, 255, 255, 255);           $red = imagecolorallocate($im, 255, 0, 0);           $style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);           imagesetstyle($im,$style);           imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);           imagejpeg($im);           imagedestroy($im);           */                    //imagestring — 水平地画一行字符串            /*bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )           $image:图片资源           $font:字体大小           $x:文字到左边的距离           $y:文字到上边的距离           $s:文字内容           $col:文字颜色           $im = imagecreatetruecolor(100,100);           $red = imagecolorallocate($im, 255, 0, 0);           imagestring($im,5,10,10,'helloworld',$red);           header("Content-type: image/jpeg");           imagejpeg($im);           imagedestroy($im);           */                    //imagestringup — 垂直地画一行字符串            /*bool imagestringup ( resource $image , int $font , int $x , int $y , string $s , int $col )           $image:图片资源           $font:字体大小           $x:文字到左边的距离           $y:文字到上边的距离           $s:文字内容           $col:文字颜色           $im = imagecreatetruecolor(100,100);           $red = imagecolorallocate($im, 255, 0, 0);           imagestringup ($im,5,20,90,'helloworld',$red);           header("Content-type: image/jpeg");           imagejpeg($im);           imagedestroy($im);           */                    //imagesx — 取得图像宽度            /*$im = imagecreatetruecolor(200,100);           echo imagesx($im);           */                    //imagesy — 取得图像长度            /*$im = imagecreatetruecolor(200,100);           echo imagesy($im);           */                    //imagegd2 — 将 GD2 图像输出到浏览器或文件            //imagegd — 将 GD 图像输出到浏览器或文件            //imagegif — 以 GIF 格式将图像输出到浏览器或文件            //imagejpeg — 以 JPEG 格式将图像输出到浏览器或文件            //imagepng — 以 PNG 格式将图像输出到浏览器或文件            //imagewbmp — 以 WBMP 格式将图像输出到浏览器或文件            //imagexbm — 将 XBM 图像输出到浏览器或文件            /*以上都是函数如果有第二个参数那么会保存到文件上,如果没有第二个参数则会输出到浏览器上*/                    ?>