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 图像输出到浏览器或文件 /*以上都是函数如果有第二个参数那么会保存到文件上,如果没有第二个参数则会输出到浏览器上*/ ?>