php图像函数
A. php图像生成函数imagecreatetruecolor和imagecreate的区别
resource imagecreatetruecolor ( int $x_size , int $y_size )
返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。
resource imagecreate ( int $x_size , int $y_size )
返回一个图像标识符,代表了一幅大小为
两者在改变背景颜色时有些区别:
imagecreatetruecolor需要用imagefill()来填充颜色
imagecreate()需要用imagecolorAllocate()添加背景色
php案例如下:
<?php$img = imagecreatetruecolor(100,100); //创建真彩图像资源$color = imagecolorAllocate($img,200,200,200); //分配一个灰色imagefill($img,0,0,$color); // 从左上角开始填充灰色header('content-type:image/jpeg'); //jpg格式imagejpeg($img); //显示灰色的方块?>
<?php$img = imagecreate(100,100);imagecolorallocate($img,200,200,200);header('content-type:image/jpeg'); imagejpeg($img); ?>
http://www.phpddt.com/php/imagecreate.html
B. php图像函数
从提示的错误信息来看,这应该是由于dreamweaver的站点设置不完整造成的,一般来说,PHP等最终的显示效果,还是要通过独立运行浏览器来查看效果比较好。
C. 求php图片缩放处理函数
<?php
/**
*图片缩放
*@paramstring$url
*@paramint$maxWidth
*@paramint$maxHeight
*@returnstring
*/
functionthumb($url,$maxWidth,$maxHeight,&$info){
$info=$imgInfo=getimagesize($url);
$width=$imgInfo[0];//获取图片宽度
$height=$imgInfo[1];//获取图片高度
$r=min($maxHeight/$height,$maxWidth/$width);
if($r>=1){//不用缩放
$maxHeight=$height;
$maxWidth=$width;
}elseif($r<1){//缩放
$maxHeight=$height*$r;
$maxWidth=$width*$r;
}
$temp_img=imagecreatetruecolor($maxWidth,$maxHeight);//创建画布
$fun=str_replace('/','createfrom',$imgInfo['mime']);
$im=$fun($url);
imageresized($temp_img,$im,0,0,0,0,$maxWidth,$maxHeight,$width,$height);
ob_start();
$fun=str_replace('/','',$imgInfo['mime']);
$fun($temp_img);
$imgstr=ob_get_contents();
ob_end_clean();
imagedestroy($im);
return$imgstr;
}
$imgUrl=$_GET['url'];
$info=array();
$string=thumb($imgUrl,500,500,$info);
$mimeArray=explode("/",$info['mime']);
header("Content-Type:image/{$mimeArray[1]}");
echo$string;
以上代码存为thumb.php,调用效果:
D. 在php中图像处理新建一个画布用什么函数
$newImage=imagecreatetruecolor($xSize,$ySize);
//增加一个白色的底,不然新建的画布是黑色的
$white=imagecolorallocate($newImage,255,255,255);
imagefill($newImage,0,0,$white);
图像处理也经常使用到imagemerge、getimagesize、imagecreatefromjpeg等函数,建议你看下这个链接,全是图像处理的函数http://php.net/manual/zh/ref.image.php
E. 北大青鸟设计培训:PHP中使用GD库创建圆形饼图
在php中,有一些简单的图像函数是可以直接使用的,但大多数要处理的图像,都需要在编译PHP时加上GD库。
除了安装GD库之外,在PHP中还可能需要其他的库,武汉电脑培训http://www.kmbdqn.cn/认为这可以根据需要支持哪些图像格式而定。
不同的GD版本支持的图像格式不完全一样,最新的GD库版本支持GIF、JPEG、PNG、WBMP、XBM等格式的图像文件,此外还支持一些如FreeType、Type1等字体库。
通过GD库中的函数,可以完成各种点、线、几何图形、文本及颜色的操作处理,也可以创建或读取多种格式的图像文件。
在PHP中,通过GD库处理图像的操作都是先在内存中处理,操作完成以后再以文件流的方式输出到浏览器或保存在服务器的磁盘中。
创建一个图像应该完成如下所示4个基本步骤。
①创建画布:所有的绘图设计都需要在一个背景图片上完成,而画布实际上就是在内存中开辟的一块临时区域,用于存储图像的信息。
以后的图像操作都将基于这个背景画布,该画布的管理就类似于我们在画画时使用的画布。
②绘制图像:画布创建完成以后,就可以通过这个画布资源,使用各种画像函数设置图像的颜色、填充画布、画点、线段、各种几何图形,以及向图像中添加文本等。
③输出图像:完成整个图像的绘制以后,需要将图像以某种格式保存到服务器指定的文件中,或将图像直接输出到浏览器上显示给客户。
但在图像输出之前,一定要使用header()函数发送Content-type通知浏览器,这次发送的是图片不是文本。
④释放资源:图像被输出以后,画布中的内容也不再有用。
出于节约系统资源的考虑,需要及时清楚画布占用的所有内存资源。
我们先来了解一下一个非常简单的创建图像脚本。
在下面的脚本文件image.php中,按前面介绍的绘制图像的四个步骤,使用GD库动态输出一个扇形统计图。
F. PHP图像函数的请教GD库
move_uploaded_file() 函数将上传的文件移动到新位置。
注释:本函数仅用于通过 HTTP POST 上传的文件。
你使用imageresampled创建的文件不能使用move_uploaded_file()
建议使用fwrite写入。
G. PHP图像处理函数有哪些
我在网上找了半天,发现这些都无法实现对它的认识,于是我偶然间找到了相关的资料方面的书;
那就是PHP 手册,表在网上找这些没用的东西了,全是些皮毛介绍,误人子弟;
请点击这里:网页链接下载相关的手册,或者在网上查找PHP相关的中文版的手册;
又全面又仔细,不需要在网上乱查了,根本就是浪费时间,误入歧途.
例子 1. 用 PHP 创建 PNG 图像
<?phpheader("Content-type: image/png");
$string = $_GET['text'];
$im= imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im,
220, 210, 60);
$px= (imagesx($im) - 7.5
* strlen($string)) /
2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);
?>
本例应该在一个具有类似:<img
src="button.php?text=text"> 标签的页面中被调用。上述的 button.php 脚本会取得 "text"
字符串将其覆盖在原图上(本例中的
"images/button1.png")并输出作为结果的图像。用此方法可以很方便地修改按钮上的文字从而避免了每次都要新画一个按钮的图像。用此方法就可以动态生成了。
目录
exif_imagetype--判断一个图像的类型
exif_read_data-- 从 JPEG 或 TIFF 文件中读取 EXIF 头信息,这样就可以读取数码相机产生的元数据
exif_thumbnail--取得嵌入在 TIFF 或
JPEG 图像中的缩略图gd_info--取得当前安装的 GD 库的信息
getimagesize--取得图像大小
image_type_to_mime_type-- 取得
getimagesize,exif_read_data,exif_thumbnail,exif_imagetype 所返回的图像类型的 MIME 类型image2wbmp--以 WBMP 格式将图像输出到浏览器或文件
imagealphablending--设定图像的混色模式
imageantialias--是否使用 antialias
功能imagearc--画椭圆弧
imagechar--水平地画一个字符
imagecharup--垂直地画一个字符
imagecolorallocate--为一幅图像分配颜色
imagecolorallocatealpha--为一幅图像分配颜色
+ alphaimagecolorat--取得某像素的颜色索引值
imagecolorclosest--取得与指定的颜色最接近的颜色的索引值
imagecolorclosestalpha--取得与指定的颜色
+ alpha 最接近的颜色imagecolorclosesthwb--
取得与给定颜色最接近的色度的黑白色的索引imagecolordeallocate--取消图像颜色的分配
imagecolorexact--取得指定颜色的索引值
imagecolorexactalpha--取得指定的颜色 +
alpha 的索引值imagecolormatch--
使一个图像中调色板版本的颜色与真彩色版本更能匹配imagecolorresolve--
取得指定颜色的索引值或有可能得到的最接近的替代值imagecolorresolvealpha--
取得指定颜色 + alpha 的索引值或有可能得到的最接近的替代值imagecolorset--给指定调色板索引设定颜色
imagecolorsforindex--取得某索引的颜色
imagecolorstotal--取得一幅图像的调色板中颜色的数目
imagecolortransparent--将某个颜色定义为透明色
image--拷贝图像的一部分
imagemerge--拷贝并合并图像的一部分
imagemergegray--用灰度拷贝并合并图像的一部分
imageresampled--重采样拷贝部分图像并调整大小
imageresized--拷贝部分图像并调整大小
imagecreate--新建一个基于调色板的图像
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--新建一个真彩色图像
imagedashedline--画一虚线
imagedestroy--销毁一图像
imageellipse--画一个椭圆
imagefill--区域填充
imagefilledarc--画一椭圆弧且填充
imagefilledellipse--画一椭圆并填充
imagefilledpolygon--画一多边形并填充
imagefilledrectangle--画一矩形并填充
imagefilltoborder--区域填充到指定颜色的边界为止
imagefontheight--取得字体高度
imagefontwidth--取得字体宽度
imageftbbox--取得使用了 FreeType 2
字体的文本的范围imagefttext--使用 FreeType 2
字体将文本写入图像imagegammacorrect--对 GD 图像应用
gamma 修正imagegd2--输出 GD2 图像
imagegd--将 GD 图像输出到浏览器或文件
imagegif--以 GIF 格式将图像输出到浏览器或文件
imageinterlace--激活或禁止隔行扫描
imageistruecolor--检查图像是否为真彩色图像
imagejpeg--以 JPEG 格式将图像输出到浏览器或文件
imagelayereffect-- Set the
alpha blending flag to use the bundled libgd layering effectsimageline--画一条直线
imageloadfont--载入一新字体
imagepalette--将调色板从一幅图像拷贝到另一幅
imagepng--以 PNG 格式将图像输出到浏览器或文件
imagepolygon--画一个多边形
imagepsbbox--取得使用 PostScript Type1
字体的文本的范围imagepsfont--
拷贝一个已加载的字体以备更改imagepsencodefont--改变字体中的字符编码矢量
imagepsextendfont--扩充或压缩字体
imagepsfreefont--释放一个
PostScript Type 1 字体所占用的内存imagepsloadfont--从文件中加载一个
PostScript Type 1 字体imagepsslantfont--倾斜某字体
imagepstext--用 PostScript Type1
字体把文本字符串画在图像上imagerectangle--画一个矩形
imagerotate--用给定角度旋转图像
imagesavealpha-- 设置标记以在保存 PNG
图像时保存完整的 alpha 通道信息(与单一透明色相反)imagesetbrush--设定画线用的画笔图像
imagesetpixel--画一个单一像素
imagesetstyle--设定画线的风格
imagesetthickness--设定画线的宽度
imagesettile--设定用于填充的贴图
imagestring--水平地画一行字符串
imagestringup--垂直地画一行字符串
imagesx--取得图像宽度
imagesy--取得图像高度
imagetruecolortopalette--将真彩色图像转换为调色板图像
imagettfbbox--取得使用 TrueType
字体的文本的范围imagettftext--用 TrueType
字体向图像写入文本imagetypes--返回当前 PHP 版本所支持的图像类型
imagewbmp--以 WBMP 格式将图像输出到浏览器或文件
iptcembed--将二进制 IPTC 数据嵌入到一幅 JPEG
图像中iptcparse-- 将二进制 IPTC http://www.iptc.org/ 块解析为单个标记
jpeg2wbmp--将 JPEG 图像文件转换为 WBMP 图像文件
png2wbmp--将 PNG 图像文件转换为 WBMP 图像文件
read_exif_data--exif_read_data() 的别名
H. php图像生成函数imagecreatetruecolor和imagecreate的区别
用imagecreatetruecolor(int x,int y)建立的是一幅大小为 x和 y的黑色图像(默认为黑色),如想改变背景颜色则需要用填充颜色函数imagefill($img,0,0,$color);
imagecreate 新建一个空白图像资源,用imagecolorAllocate()添加背景色
上面两个函数只不过是一个功能的两种方法
具体用法见以下两种方法:
<?php
$img = imagecreatetruecolor(100,100); //创建真彩图像资源
$color = imagecolorAllocate($img,200,200,200); //分配一个灰色
imagefill($img,0,0,$color); // 从左上角开始填充灰色
header('content-type:image/jpeg'); //jpg格式
imagejpeg($img); //显示灰色的方块
?>
<?php
$img = imagecreate(100,100);
$color = imagecolorallocate($img,200,200,200);
header('content-type:image/jpeg'); //jpg格式
imagejpeg($img); //显示灰色的方块
?>
I. php 图象处理函数 imagestring 函数的运用
可以用imagettftext来生成,支持truetype字体
array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
image
图像资源。见 imagecreatetruecolor()。
size
字体大小。根据 GD 版本不同,应该以像素大小指定(GD1)或点大小(GD2)。
angle
角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。
x
由 x,y 所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)。这和 imagestring() 不同,其 x,y 定义了第一个字符的左上角。例如 "top left" 为 0, 0。
y
Y 坐标。它设定了字体基线的位置,不是字符的最底端。
color
颜色索引。使用负的颜色索引值具有关闭防锯齿的效果。见 imagecolorallocate()。
fontfile
是想要使用的 TrueType 字体的路径。
根据 PHP 所使用的 GD 库的不同,当 fontfile 没有以 / 开头时则 .ttf 将被加到文件名之后并且会在库定义字体路径中尝试搜索该文件名。
当使用的 GD 库版本低于 2.0.18 时,一个空格字符 而不是分号将被用来作为不同字体文件的“路径分隔符”。不小心使用了此特性将会导致一条警告信息:Warning: Could not find/open font。对受影响的版本来说唯一解决方案就是将字体移动到不包含空格的路径中去。
很多情况下字体都放在脚本的同一个目录下。下面的小技巧可以减轻包含的问题。 <?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>
text
文本字符串。
可以包含十进制数字化字符表示(形式为:€)来访问字体中超过位置 127 的字符。UTF-8 编码的字符串可以直接传递。
如果字符串中使用的某个字符不被字体支持,一个空心矩形将替换该字符。
imagettftext() 返回一个含有 8 个单元的数组表示了文本外框的四个角,顺序为坐下角,右下角,右上角,左上角。这些点是相对于文本的而和角度无关,因此“左上角”指的是以水平方向看文字时其左上角。
例子 1. imagettftext() 例子
本例中的脚本将生成一个白色的 400x30 像素 PNG 图像,其中有黑色(带灰色阴影)Arial 字体写的“Testing...”。
<?php
// Set the content-type
header("Content-type: image/png");
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$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);
// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>