PHP裁剪图片完整的实例,最好诗经txt带注释和译文的!大神们分享一下呗!急求!

微信开发实例全注释代码分享-小宇博客
关注互联网和网站运营的原创IT博客
分享一段带有微信点歌、图片识别、语音识别、位置识别、机器人的代码,每一行每一个代码单元都有详细的注释参考。复制代码到编辑器中保存为test.php,在微信或第三方自定义接口回复中填入url/test.php,token:weixin即可使用。购买过的用户,请联系获取完整版(增加了获取宅言,解梦,中英日韩谐音,QQ昵称/空间访问量数据的功能)另外完整版预留了位置可继续添加API,分别列出了各种不同的数据请求方法和API数据常用格式json和xml解析方法供参考,并引用了相关函数的来源和使用方法,大家可对照学习自己添加需要的数据供用户使用。(API接口可以使用天行数据(,包含微信精选和各种类型新闻、故事、美女图文数据和脑筋急转弯、歇后语、笑话、一战到底数据等,具体的调用方法可以参考这篇文章。)&?php
&*&天行微信API开发学习系统
&*&@version&1.3
&*&Modified&at&&20:25
define(&TOKEN&,&&weixin&);&&&//设置token常量
$wechatObj&=&new&wechatCallbackapiTest();&//实例化wechatCallbackapiTest对象
$wechatObj-&valid();&&//执行wechatCallbackapiTest类下的valid()方法
$wechatObj-&responseMsg();&&//执行wechatCallbackapiTest类下的responseMsg()方法
class&wechatCallbackapiTest&&//创建wechatCallbackapiTest类
&&&&public&function&valid()&&//创建一个名为valid()的公共函数方法
&&&&&&$echoStr&=&$_GET[&echostr&];&&//收集get数据(随机字符串)
&&&&if($this-&checkSignature()){&&//判断checkSignature()自定义函数结果(验证微信服务器)
&&&&&&&&&&&&echo&$echoS&&//为真则输出结果(随机字符串)
&&&&public&function&responseMsg()
&&&&&&&&$postStr&=&$GLOBALS[&HTTP_RAW_POST_DATA&];&&//获取post数据
&&&&&&&&if&(!empty($postStr)){&&//判断获取到的数据是否为空
&&&&&&&&&&&&libxml_disable_entity_loader(true);&&//防止因libxml错误缓冲导致的安全问题
&&&&&&&&&&&&&&&$postObj&=&simplexml_load_string($postStr,&'SimpleXMLElement',&LIBXML_NOCDATA);&&//解析XML数据
&&&&&&&&&&&&&&&&$reType&=&trim($postObj-&MsgType);
&&&&&&&&switch&($reType)&{
&&&&&&&&&&case&&text&&:&&//消息类型,text为普通文本类型
&&&&&&&&&&&&&&&$resultStr&=&$this-&handleText&(&$postObj&);
&&&&&&&&&&&&&&&&&
&&&&&&&&&&case&&image&&:
&&&&&&&&&&&&&&&&$resultStr&=&$this-&handleImg&(&$postObj&);
&&&&&&&&&&&&&&&&&
&&&&&&&&&&case&&voice&&:
&&&&&&&&&&&&&&&&$resultStr&=&$this-&handleVio&(&$postObj&);
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&case&&location&&:
&&&&&&&&&&&&&&&&&$resultStr&=&$this-&handleLoc&(&$postObj&);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&case&&event&&:
&&&&&&&&&&&&&&&&&$resultStr&=&$this-&handleEvent&(&$postObj&);
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&default&:
&&&&&&&&&&&&&&&&&$resultStr&=&&其他消息类型或格式错误:&&&.&$RX_TYPE;&&//不符合上述类型或格式错误的提示
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&echo&$resultS
&&&&&&&&}else&{
&&&&&&&&&&&&echo&&未获取到数据&;&&//未获取到数据的提示
&&&&&&&&&&&&&&&//结束程序执行
&&&&*&验证微信服务器
&&&&private&function&checkSignature()&&&//验证消息真实性函数,详见微信开发文档
&&&&{&&&&&&&
&&&&&&&&$signature&=&$_GET[&signature&];&&//微信加密签名
&&&&&&&&$timestamp&=&$_GET[&timestamp&];&&//时间戳
&&&&&&&&$nonce&=&$_GET[&nonce&];&&//随机数&&&&&&&&&
&&&&&&&&$token&=&TOKEN;&&//token与上面对应
&&&&&&&&$tmpArr&=&array($token,&$timestamp,&$nonce);&//组装创建数组
&&&&&&&&sort($tmpArr,&SORT_STRING);&//把$tmpArr做字符串处理并排序(升序)
&&&&&&&&$tmpStr&=&implode(&$tmpArr&);&&//将数组变成字符串
&&&&&&&&$tmpStr&=&sha1(&$tmpStr&);&//计算字符串散列&&&
&&&&&&&&if(&$tmpStr&==&$signature&){&&//判断是否一致
&&&&&&&&&&&&return&&&&//符合返回真
&&&&&&&&}else{
&&&&&&&&&&&&return&&&//否则返回假
&&&&*&封装微信回复格式
&&&&function&XmlTpl(){&&//微信普通文本消息的XML格式
&&&&&&&&&&&&$textTpl&=&&&xml&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ToUserName&&![CDATA[%s]]&&/ToUserName&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&FromUserName&&![CDATA[%s]]&&/FromUserName&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&CreateTime&%s&/CreateTime&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MsgType&&![CDATA[%s]]&&/MsgType&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Content&&![CDATA[%s]]&&/Content&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/xml&&;
&&&&&&&&&&&&return&$textT&&&&&&&&&&&&&&&
&&&&}&&&&&&&&
&&&&function&handleText($postObj){&&&//消息关键词处理函数
&&&&&&&&$fromUsername&=&$postObj-&FromUserN&&//获取开发者微信号
&&&&&&&&$toUsername&=&$postObj-&ToUserN&&&&//用户的OpenID
&&&&&&&&$keyword&=&trim($postObj-&Content);&&&&//用户输入的信息
&&&&&&&&$time&=&time();&&//时间
&&&&&&&&if(mb_substr($keyword,0,2,'utf-8')&==&&点歌&){&&//判断关键词前两个字为“点歌”
&&&&&&&&$keyword&=&mb_substr($keyword,2,20,'utf-8');&&&&//删除点歌,保留关键信息
&&&&&&&&$mucTpl&=&&&&xml&&&
&&&&&&&&&&&&&&&&&&&&&Music&
&&&&&&&&&&&&&&&&&&&&&&&&&Title&&![CDATA[%s]]&&/Title&
&&&&&&&&&&&&&&&&&&&&&&&&&Description&&![CDATA[%s]]&&/Description&
&&&&&&&&&&&&&&&&&&&&&&&&&MusicUrl&&![CDATA[%s]]&&/MusicUrl&
&&&&&&&&&&&&&&&&&&&&&&&&&HQMusicUrl&&![CDATA[%s]]&&/HQMusicUrl&
&&&&&&&&&&&&&&&&&&&&&/Music&
&&&&&&&&&&&&&&&&&&&&&&&&&ToUserName&&![CDATA[%s]]&&/ToUserName&
&&&&&&&&&&&&&&&&&&&&&&&&&FromUserName&&![CDATA[%s]]&&/FromUserName&
&&&&&&&&&&&&&&&&&&&&&&&&&CreateTime&%s&/CreateTime&
&&&&&&&&&&&&&&&&&&&&&&&&&MsgType&&![CDATA[%s]]&&/MsgType&
&&&&&&&&&&&&&&&&&&&&&/xml&&;&&&//音乐消息的XML格式&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&$mp3&=&urlencode($keyword);&//将用户输入信息进行url编码
&&&&&&&&&&&&$urlapi&=&&&http://box./x?op=12&count=1&title={$mp3}$$&;&&//请求带有歌曲关键词的数据
&&&&&&&&&&&&$simstr=file_get_contents($urlapi);&&//获取数据
&&&&&&&&&&&&$musicobj=simplexml_load_string($simstr);&&//解析数据
&&&&&&&&&&&&foreach($musicobj-&url&as&$itemobj)&&//循环遍历数组
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&$encode&=&$itemobj-&
&&&&&&&&&&&&&&&&$decode&=&$itemobj-&&&&
&&&&&&&&&&&&&&&&$removedecode&=&end(explode('&',&$decode));&&//按&&&分割成数组
&&&&&&&&&&&&&&&&if($removedecode&&&&)&&//若不等于空
&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&$removedecode=&&&.$&&&&//则加上&&&符号
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&$decode&=&str_replace($removedecode,&&,&$decode);&&//字符串替换函数
&&&&&&&&&&&&&&&&$musicurl=&str_replace(end(explode('/',&$encode))&&&,$decode,$encode);
&&&&&&&&&&&&&&&&//$Media&=&&&;
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&if(!empty(&$keyword&))&&&//判断关键词是否为空
&&&&&&&&&&&&$msgType&=&&music&;&&//消息类型
&&&&&&&&&&&&$Description&=&&百度音乐-&.$&&//描述
&&&&&&&&&&&&$resultStr&=&sprintf($mucTpl,$keyword,$Description,$musicurl,$musicurl,$toUsername,$fromUserName,$time,$msgType);&//组装回复
&&&&&&&&&&&&echo&$resultS&&//输出信息给用户
&&&&&&&&&&&&&&&&&&&&&&//回调,反正输出其他信息干扰
&&&&&&&&}else{
&&&&&&&&&&&&$msgType&=&&text&;&&//消息类型,text为普通文本消息
&&&&&&&&&&&&$contentStr&=&&请输入点歌+歌名,例如:点歌小苹果&;&&//否则,输出提示
&&&&&&&&&&&&$resultStr&=&sprintf($this-&XmlTpl(),&$fromUsername,&$toUsername,&$time,&$msgType,&$contentStr);
&&&&&&&&&&&&echo&$resultS
&&&&&&&&$textTpl&=&&$this-&XmlTpl();&&&//消息格式。调用函数
&&&&&&&&if(!empty(&$keyword&))
&&&&&&&&&&&&$msgType&=&&text&;
&&&&&&&&&&&&$contentStr&=&$this-&ReText($fromUsername,&$keyword);
&&&&&&&&&&&&$resultStr&=&sprintf($textTpl,&$fromUsername,&$toUsername,&$time,&$msgType,&$contentStr);//组装回复
&&&&&&&&&&&&echo&$resultS
&&&function&handleImg($postObj){
&&&&&&&&$fromUsername&=&$postObj-&FromUserN&//同上
&&&&&&&&$toUsername&=&$postObj-&ToUserN
&&&&&&&&$keyword&=&$postObj-&PicU&&//获取图片URL
&&&&&&&&$time&=&time();
&&&&&&&&$textTpl&=&&$this-&XmlTpl();&&//调用封装的回复XML格式
&&&&&&&&if(!empty(&$keyword&))
&&&&&&&&&&&&$msgType&=&&text&;
&&&&&&&&&&&&$apiurl&=&file_get_contents('/face/?appkey=trialuser&picurl='.$keyword);&&//API请求
&&&&&&&&&&&&$apiurl&=&str_replace('
&,$apiurl);&&//替换函数,详见上同
&&&&&&&&&&&&$contentStr&=&$
&&&&&&&&&&&&$resultStr&=&sprintf($textTpl,&$fromUsername,&$toUsername,&$time,&$msgType,&$contentStr);
&&&&&&&&&&&&echo&$resultS
&&&&function&handleVio($postObj){
&&&&&&&&$fromUsername&=&$postObj-&FromUserN
&&&&&&&&$toUsername&=&$postObj-&ToUserN
&&&&&&&&$keyword&=&$postObj-&R&&//语音识别结果
&&&&&&&&$time&=&time();
&&&&&&&&$textTpl&=&&$this-&XmlTpl();
&&&&&&&&if(!empty(&$keyword&))
&&&&&&&&&&&&$msgType&=&&text&;
&&&&&&&&&&&&$contentStr&=&$this-&ReText($fromUsername,&$keyword);
&&&&&&&&&&&&$resultStr&=&sprintf($textTpl,&$fromUsername,&$toUsername,&$time,&$msgType,&$contentStr);
&&&&&&&&&&&&echo&$resultS
&&&&function&handleLoc($postObj){
&&&&&&&&$fromUsername&=&$postObj-&FromUserN
&&&&&&&&$toUsername&=&$postObj-&ToUserN
&&&&&&&&$lx&=&$postObj-&Location_X;&&
&&&&&&&&$ly&=&$postObj-&Location_Y;
&&&&&&&&$wz&=&$postObj-&L
&&&&&&&&$time&=&time();
&&&&&&&&$textTpl&=&&$this-&XmlTpl();
&&&&&&&&&&&&$msgType&=&&text&;
&&&&&&&&&&&&$contentStr&=&&位置精度:&.$lx.&
位置纬度:&.$ly.&
地理位置:&.$&&&//用户发送位置信息结果
&&&&&&&&&&&&$resultStr&=&sprintf($textTpl,&$fromUsername,&$toUsername,&$time,&$msgType,&$contentStr);
&&&&&&&&&&&&echo&$resultS
&*&新用户关注回复
public&function&handleEvent($object)&{
$contentStr&=&&&;
switch&($object-&Event)&{&&//消息类型
case&&subscribe&&:&&&//用户关注事件类型
$contentStr&=&&欢迎关注!&;
&&//继续执行下一片段
default&:&&//最终执行,其他类型
$contentStr&=&&自定义菜单或其他类型消息&;
$resultStr&=&$this-&responseText&(&$object,&$contentStr&);
return&$resultS
public&function&responseText($object,&$content,&$flag&=&0)&{
$textTpl&=&&&xml&
&&&&&&&&&&&&&&&&&&&&&ToUserName&&![CDATA[%s]]&&/ToUserName&
&&&&&&&&&&&&&&&&&&&&&FromUserName&&![CDATA[%s]]&&/FromUserName&
&&&&&&&&&&&&&&&&&&&&&CreateTime&%s&/CreateTime&
&&&&&&&&&&&&&&&&&&&&&MsgType&&![CDATA[text]]&&/MsgType&
&&&&&&&&&&&&&&&&&&&&&Content&&![CDATA[%s]]&&/Content&
&&&&&&&&&&&&&&&&&&&&&FuncFlag&%d&/FuncFlag&
&&&&&&&&&&&&&&&&&&&&&/xml&&;&&//关注事件的XML数据格式
$resultStr&=&sprintf&(&$textTpl,&$object-&FromUserName,&$object-&ToUserName,&time&(),&$content,&$flag&);
return&$resultS
private&function&ReText($fromUsername,$keyword){&&//关键词处理函数段
$apiurl=file_get_contents('/api.php?question='.$keyword.'&api_key=4ca53a6e571d2f6a2c57212&api_secret=97cydvok24ve');
&&&&return&$
}&&//复制以上代码到编辑器中保存为test.php,在微信或第三方自定义接口回复中填入/url/test.php,token:weixin即可使用。
本站所有文章均为小宇博客原创,转载请注明来源及出处!
作者:宇天行 ()
本文首发地址:
或许您还会喜欢这些文章:
我也来学习
我也来学习
有时间我也来学习
有时间我也来学习
近期发表文章
年度热评文章
转播分享好友
网盟广告赞助PHP实现图片裁剪、添加水印效果代码
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了PHP实现图片裁剪、添加水印效果代码,本文给出代码示例,代码中包含一些说明注释,需要的朋友可以参考下
3、PHP对图像的裁剪
&h4&裁剪之前&/h4&
&img src="1.png" style="border:1"&
header("content-type","text/charset=utf-8");
*@param string $filename
*@param int
图片裁剪宽度
*@param int
图片裁剪高度
*@param int
裁剪图片左边开始的位置
*@param int
裁剪图片顶边开始的位置
function cut($filename,$x,$y,$width,$height)
/*获取图像资源,需要裁剪的图片*/
$image = imagecreatefrompng($filename);
/*以新的大小创建画布,保存裁剪后的图片*/
$image_p = imagecreatetruecolor($width, $height);
/*使用imagecopyresampled缩放*/
imagecopyresampled($image_p, $image, 0, 0, $x, $y, $width, $height, $width, $height);
/*保存裁剪后的图片和命名*/
imagepng($image_p,'test1.png');
/*释放资源*/
imagedestroy($image_p);
imagedestroy($image);
/*调用函数*/
cut('1.png',20,20,80,80);
&h4&裁剪之后&/h4&
&img src="test1.png" style="border:1"&
4、PHP为图像添加水印
&h4&没有水印&/h4&
&img src="1.png" style="border:1"&
header("content-type","text/charset=utf-8");
*给背景图片添加水印,背景图片格式png,水印格式gif
*@param string $filename
*@param string $water
function watermark($filename,$water)
/*获取原图的大小*/
list($b_w,$b_h) = getimagesize($filename);
/*获取水印图片的大小*/
list($w_w,$w_h) = getimagesize($water);
/*在背景图片中放水印图片的随机起始位置*/
$posX =rand(0,($b_w - $w_w));
$posY =rand(0,($b_h - $w_h));
/*获取图像资源,需要裁剪的图片*/
$back = imagecreatefrompng($filename);
$water = imagecreatefromgif($water);
/*使用Inagecopy函数复制水印图片到指定位置*/
imagecopy($back, $water, $posX, $posY, 0, 0, $w_w, $w_h);
/*保存带水印的图片和命名*/
imagepng($back,'test2.png');
/*释放资源*/
imagedestroy($back);
imagedestroy($water);
/*调用函数*/
watermark('1.png','test.gif');
&h4&加上水印&/h4&
&img src="test2.png" style="border:1"&
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具PHP+jQuery+html5实现图片选取裁剪上传(兼容手机上传)
PHP语言基础
开发语言:PHP
实例大小:0.05M
下载次数:
浏览次数:
发布时间:
实例类别:PHP语言基础
发 布 人:
所需积分:2
&相关标签:
同类人气实例
实例下载地址
PHP+jQuery+html5实现图片选取裁剪上传(兼容手机上传)
不能下载?内容有错? 点击这里报错
好例子网口号:伸出你的我的手 & 分享!
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
Copyright &
好例子网(www.haolizi.net).All Rights Reserved备案编号:冀ICP备号 石公备号(10)

我要回帖

更多关于 木兰诗拼音版带注释 的文章

 

随机推荐