可以使用图像创建函数对图像进行处理,例如把一个较大图像作成一个小图像:
要完成这一任务的关键函数是ImageCopyResized(),它要求的格式如下所示:
ImageCopyResized([new image handle],[original image handle],[new image X], [new Image Y], [original image X], [original image Y], [new image X], [new image Y], [original image X], [original image Y]).
<? /* 发送一个头部,以便让浏览器知道该文件所包含的内容类型*/
header("Content-type: image/png");
/* 建立保存新图像高度和宽度的变量*/
/* 建立给定高度和宽度的新的空白图像*/
$newImg = ImageCreate($newWidth,$newHeight);
/* 从原来较大的图像中得到数据*/
$origImg = ImageCreateFromPNG("test.png");
/*拷贝调整大小后的图像,使用ImageSX()、ImageSY()得到原来的图像在X、Y方面上的大小 */
ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg));
/*创建希望得到的图像,释放内存 */
ImagePNG($newImg);
ImageDestroy($newImg); ?>
$newImage?=?imagecreatetruecolor($xSize,$ySize);
//增加一个白色的底,不然新建的画布是黑色的
imagefill($newImage,?0,?0,?$white);
图像处理也经常使用到imagecopymerge、getimagesize、imagecreatefromjpeg等函数,建议你看下这个链接,全是图像处理的函数
Step 1 =
Makefile.am Makefile.in
#define pconfig_module_ptr pconfig_module_entry
#define phpext_pconfig_ptr pconfig_module_ptr
这几行定义了模块的入口,将入口注册到php后,php会通过模块入口找到你写的函数
extern PHP_MINIT_FUNCTION(pconfig);
extern PHP_RINIT_FUNCTION(pconfig);
extern PHP_MSHUTDOWN_FUNCTION(pconfig);
PHP_MINFO_FUNCTION(pconfig);
这是你的函数声明,将来写在php脚本语句中的函数名就是在PHP_FUNCTION中定义的名字.
PHP_FUNCTION(pconfig_test);
如果有多个,还可以继续往下加
PHP_FUNCTION(pconfig_parsefile);
PHP_FUNCTION(pconfig_release); .......
此时此刻呢我们看最重点的C代码了
function_entry pconfig_functions[] = {
PHP_FE(pconfig_test, NULL)
{NULL, NULL, NULL}
};
定义的是你的函数的入口(前面我们提到过模块的入口),按照格式将你在头文件中定义的函数写进去吧.注意,这是用宏定义的,不要管语法是否正确.以后我们具体讨论这些宏的用法.
"pconfig", pconfig_functions, PHP_MINIT(pconfig), PHP_MSHUTDOWN(pconfig), PHP_RINIT(pconfig), NULL, PHP_MINFO(pconfig), STANDARD_MODULE_PROPERTIES
注册模块的入口信息,比如模块名,函数接口,初试化模块将调用的函数等等,如果你的模块不执行复杂操作的话,可以忽略掉他们,写成
"pconfig", pconfig_functions, NULL,NULL,NULL,NULL,NULL,STANDARD_MODULE_PROPERTIES
写你自己的函数
在头文件和function_entry处,我们已经定义了自己的函数pconfig_test,现在我们就来实现pconfig_test的功能.就比如执行两个数相加的和吧.
{ ......
}
PHP_FUNCTION(pconfig_test)
{
if test "${with_pconfig◆set}" = set; then
withval="$with_pconfig"
# Add your lib in here
EXTRA_LIBS="$EXTRA_LIBS"
# Add your include path in here
INCLUDES="$INCLUDES"
EXT_SUBDIRS="$EXT_SUBDIRS pconfig"
EXT_LIBS="$EXT_LIBS pconfig/libphpext_pconfig.a"
EXTINFO_DEPS="$EXTINFO_DEPS ../ext/pconfig/extinfo.c.stub"
EXT_STATIC="$EXT_STATIC pconfig"
fi
在zend_module_entry数组中加入phpext_pconfig_ptr,
从新configure,带上需要的参数,不要忘记的是在参数里加入 --with-pconfig
"; ?
php图像处理函数大全
php图片处理代码分享,包括缩放、剪裁、缩放、翻转、旋转、透明、锐化等.需要的朋友可以参考下
第一段:创建图片资源
imagecreatetruecolor(width,height);
imagecreatefromgif(图片名称);
imagecreatefrompng(图片名称);
imagecreatefromjpeg(图片名称);画出各种图像
imagegif(图片资源,保存路径);
imagepng()
imagejpeg();
第二段:获取图片属性
imagesx(res//宽度
imagesy(res//高度
getimagesize(文件路径)
返回一个具有四个单元的数组.索引
标记.
销毁图像资源
imagedestroy(图片资源);
第三段:透明处理
PNG、jpeg透明色都正常,只有gif不正常
imagecolortransparent(resource
image [,int
color])//将某个颜色设置成透明色
imagecolorstotal()
imagecolorforindex();
第四段:图片的裁剪
imagecopyresized()
imagecopyresampled();
第五段:加水印(文字、图片)
字符串编码转换string iconv ( string $in_charset ,
string $out_charset , string $str )
第六段:图片旋转
imagerotate();//制定角度的图片翻转
第七段:图片的翻转
沿X轴 沿Y轴翻转
第八段:锐化
imagecolorsforindex()
imagecolorat()
在php中,有一些简单的图像函数是可以直接使用的,但大多数要处理的图像,都需要在编译PHP时加上GD库.
除了安装GD库之外,在PHP中还可能需要其他的库,兰州电脑培训认为这可以根据需要支持哪些图像格式而定.
不同的GD版本支持的图像格式不完全一样,最新的GD库版本支持GIF、JPEG、PNG、WBMP、XBM等格式的图像文件,此外还支持一些如FreeType、Type1等字体库.
通过GD库中的函数,可以完成各种点、线、几何图形、文本及颜色的操作处理,也可以创建或读取多种格式的图像文件.
在PHP中,通过GD库处理图像的操作都是先在内存中处理,操作完成以后再以文件流的方式输出到浏览器或保存在服务器的磁盘中.
①创建画布:所有的绘图设计都需要在一个背景图片上完成,而画布实际上就是在内存中开辟的一块临时区域,用于存储图像的信息.
以后的图像操作都将基于这个背景画布,该画布的管理就类似于我们在画画时使用的画布.
②绘制图像:画布创建完成以后,就可以通过这个画布资源,使用各种画像函数设置图像的颜色、填充画布、画点、线段、各种几何图形,以及向图像中添加文本等.
③输出图像:完成整个图像的绘制以后,需要将图像以某种格式保存到服务器指定的文件中,或将图像直接输出到浏览器上显示给客户.
但在图像输出之前,一定要使用header()函数发送Content-type通知浏览器,这次发送的是图片不是文本.
④释放资源:图像被输出以后,画布中的内容也不再有用.
出于节约系统资源的考虑,需要及时清楚画布占用的所有内存资源.
我们先来了解一下一个非常简单的创建图像脚本.
在下面的脚本文件image.php中,按前面介绍的绘制图像的四个步骤,使用GD库动态输出一个扇形统计图.
以上就是土嘎嘎小编为大家整理的php数学函数和创建图像五步相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!