前言:
目前咱们对“php使图片旋转”大致比较关怀,大家都想要剖析一些“php使图片旋转”的相关知识。那么小编在网摘上网罗了一些有关“php使图片旋转””的相关文章,希望朋友们能喜欢,朋友们快快来学习一下吧!(1)创建画布 --- 创建资源类型 --- 高度 宽度
resource imagecreate ( int x_size, int y_size ) 创建一个基于普通调色板的图像, 通常支持256色(png、gif、jepg等都支持)
resource imagecreatetruecolor ( int x_size, int y_size ) 创建一个真彩色的图像, 但不能用于gif格式
(2)绘制图像
制定各种颜色 int imagecolorallocate ( resource $image , int $red , int $green , int $blue )
用imagecreate()建立的图像, 也可以填充为背景颜色(注意:第一次调用即可为画布设置背景色),兼有代替函数imagefill的填充功能
(理解:第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色, 即用于imagecreate()建立的画布,但不能用于
imagecreatetruecolor()创建的画布)
图形区域填充 bool imagefill ( resource $image , int $x , int $y , int $color )
可以填充为背景颜色,只能用于imagecreatetruecolor()创建的真彩色图像;
矩形, 圆, 点, 线段, 扇形, 画字(字符, 字符串, freetype)
每一个图像对应一个函数
imagerectangle() 画一个矩形
bool imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $col )
imagefilledrectangle() 画一矩形并填充
bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )
imageellipse() 画一个椭圆
bool imageellipse ( resource $image , int $cx , int $cy , int $w , int $h , int $color )
imagefilledellipse() 画一个椭圆并填充filled
bool imagefilledellipse ( resource $image , int $cx , int $cy , int $w , int $h , int $color )
imagesetpixel() — 画一个单一像素
bool imagesetpixel ( resource $image , int $x , int $y , int $color )
imageline() — 画一条线段
bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )
imagearc() — 画椭圆弧
bool imagearc ( resource $image , int $cx , int $cy , int $w , int $h , int $s , int $e , int $color )
imagearc() 以 cx,cy(图像左上角为 0, 0)为中心在 image 所代表的图像中画一个椭圆弧。
w和 h 分别指定了椭圆的宽度和高度,起始和结束点以 s 和 e参数以角度指定。0°位于三点钟位置,以顺时针方向绘画。
imagefilledarc() 画椭圆弧并填充
bool imagefilledarc ( resource $image , int $cx , int $cy , int $w , int $h , int $s , int $e , int $color , int $style )
style:
IMG_ARC_PIE 则产生圆形边界
IMG_ARC_CHORD 只是用直线连接了起始和结束点(IMG_ARC_PIE 和 IMG_ARC_CHORD是互斥的,如果两个都用,IMG_ARC_CHORD生效)。
IMG_ARC_NOFILL 指明弧或弦只有轮廓,不填充。
IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连,和 IMG_ARC_NOFILL一起使用是画饼状图轮廓的好方法(而不用填充)。
(chord:和弦 pie:馅饼(扇形图) nofill:不填充 edged: 有刃的;有边的)
imagepolygon() — 画一个多边形
bool imagepolygon ( resource $image , array $points , int $num_points , int $color )
imagefilledpolygon() — 画一多边形并填充
bool imagefilledpolygon ( resource $image , array $points , int $num_points , int $color )
<?php// 创建画布$image = imagecreatetruecolor(400, 300);// 填充背景颜色$bg = imagecolorallocate($image, 0, 0, 0);// 分配颜色$col_poly = imagecolorallocate($image, 255, 255, 255);// 绘制多边形imagepolygon($image,array (0, 0,100, 200,300, 200),3,$col_poly);// 输出图像header("Content-type: image/png");imagepng($image);?>
imagechar() — 水平地画一个字符
bool imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color )
imagechar() 将字符串 c 的第一个字符画在 image 指定的图像中,其左上角位于 x,y(图像左上角为 0, 0),颜色为 color。
如果 font是 1,2,3,4, 5(1最小,5最大),则使用内置的字体(更大的数字对应于更大的字体)。
实例:
<?php$im = imagecreate ( 100 , 100 );$string = 'PHP' ;$bg = imagecolorallocate ( $im , 255 , 255 , 255 );$black = imagecolorallocate ( $im , 0 , 0 , 0 );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 )
imagestring() — 水平地画一行字符串
bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )
实例:
<?php// 建立一幅 100X30 的图像$im = imagecreate ( 100 , 30 );// 白色背景和蓝色文本$bg = imagecolorallocate ( $im , 255 , 255 , 255 );$textcolor = imagecolorallocate ( $im , 0 , 0 , 255 );// 把字符串写在图像左上角imagestring ( $im , 5 , 0 , 0 , "Hello world!" , $textcolor );// 输出图像header ( "Content-type: image/png" );imagepng ( $im );?>
imagestringup() — 垂直地画一行字符串
bool imagestringup ( resource $image , int $font , int $x , int $y , string $s , int $col )
注意:以上四个函数均不支持中文,支持中文则使用imagettftext()函数
imagettftext() — 用 TrueType 字体向图像写入文本
该函数与分辨率无关,输出时总是按照打印机的分辨率输出,无论是放大或缩小,字符总是光滑的,不会有锯齿出现。
array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
size:字体的尺寸。根据 GD 的版本,为像素尺寸(GD1)或点(磅)尺寸(GD2)。(1磅等于4/3像素,约1.33像素)
angle:角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。
fontfile:是指要使用的 TrueType 字体的路径,很多情况下字体都放在脚本的同一个目录下。
imagettftext()函数只支持utf-8编码,所以如果创建的网页的编码格式使用GB2312,那么在应用imagettftext()函数输出中文字符串时,
必须应用iconv()函数将字符串的编码格式由GB2312转换为utf-8,否则在输出时将会出现乱码。
注意:如果网页是uft-8的编码,就没必要用iconv()函数,否则就会出现错误, $text=iconv("GB2312", "UTF-8", "LAMP编程--Linux操作系统!");
只能转出"LAMP",而后面的汉字"编程--Linux操作系统!"转不出来
(3)输出图像/保存处理好的图像
1.通过 header() 发送 Content-type: image/jpeg 可以使 PHP 脚本直接输出 JPEG 图像。
注意:header头不要在前面有任何输出 header("content-type:image/jpeg");
2. 输出各种类型(gif, png, jpeg)
imagegif(); 以 GIF 格式将图像输出到浏览器或文件
bool imagegif ( resource $image [, string $filename ] )
imagejpeg(); 以 JPEG 格式将图像输出到浏览器或文件
bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )
imagejpeg() 从 image图像以 filename 为文件名创建一个 JPEG 图像。image参数是 imagecreatetruecolor() 函数的返回值。
filename:参数为可选,如果省略,则原始图像流将被直接输出。(如果保存图片的话,就不需要使用函数header()发送头信息)
要省略 filename 参数而提供 quality 参数, 使用空字符串('',注意不是空格字符' ')或者null。
quality:为可选项,范围从 0(最差质量,文件更小)到 100(最佳质量,文件最大),默认的质量值(大约 75)。
imagepng(); 以 PNG 格式将图像输出到浏览器或文件
bool imagepng ( resource $image [, string $filename ] )
(4)释放资源
imagedestroy() — 销毁一图像
bool imagedestroy ( resource $image )
<?php$im = imagecreatetruecolor(400, 30); //创建400x300像素大小的画布$white = imagecolorallocate($im, 255, 255, 255); //创建白色$grey = imagecolorallocate($im, 128, 128, 128); //创建灰色$black = imagecolorallocate($im, 0, 0, 0); //创建黑色imagefilledrectangle($im, 0, 0, 399, 29, $white); //输出一个使用白色填充的矩形作为背景//如果有中文输出,需要将其转码,转换为UTF-8的字符串才可以直接传递$text=iconv("GB2312", "UTF-8", "LAMP兄弟连--无兄弟,不编程!");$font = 'simsun.ttc'; //指定字体,将系统中与simsum.ttc对应的字体复制到当前目录下imagettftext($im, 20, 0, 12, 21, $grey, $font, $text); //输出一个灰色的字符串作为阴影imagettftext($im, 20, 0, 10, 20, $black, $font, $text); //在阴影之上输出一个黑色的字符串header("Content-type: image/png"); //通知浏览器将输出格式为PNG的图像imagepng($im); //向浏览器中输出PNG格式的图像imagedestroy($im); //销毁资源,释放内存占用的空间?>
图像处理第二种方法:
imagecreatefromjpeg() 从 JPEG 文件或 URL 新建一图像
resource imagecreatefromjpeg ( string $filename )
该函数返回一图像标识符, 代表了从给定的文件名取得的图像。
在失败时返回一个空字符串, 并且输出一条错误信息, 不幸地在浏览器中显示为断链接。
为减轻调试工作下面的例子会产生一个错误 JPEG:
<?phpfunction LoadJpeg($imgname){ $im = @imagecreatefromjpeg($imgname); /* Attempt to open */ if(!$im) { /* See if it failed */ $im = imagecreatetruecolor(150, 30); /* Create a blank image */ $bgc = imagecolorallocate($im, 255, 255, 255); $tc = imagecolorallocate($im, 0, 0, 0); imagefilledrectangle($im, 0, 0, 150, 30, $bgc); /* Output an errmsg */ imagestring($im, 1, 5, 5, "Error loading $imgname", $tc); } return $im;}?>
imagecreatefrompng() — 从 PNG 文件或 URL 新建一图像
resource imagecreatefrompng ( string $filename )
imagecreatefromgif() -从 GIF 文件或 URL 新建一图像
resource imagecreatefromgif ( string $filename )
其他图像处理函数
获取图像的大小
imagesx() 获取画布的宽度
imagesy() 获取画布的高度
<?php$img = imagecreatetruecolor(300,200);echo imagesx($img);echo imagesy($img);?>
查看GD库信息
<?php//从服务器获取GD库的信息if(function_exists("gd_info")){ $gd = gd_info(); //gd_info()函数返回的数组 $gdinfo = $gd["GD Version"];}else{ $gdinfo="未知";}//从GD库中查看是否支持FreeType字体$freetype = $gd["FreeType"]?"支持":"不支持";echo $gdinfo;echo "<br />";echo $freetype;?>
标签: #php使图片旋转