我刚好有这个需求,顺手解决了。跟大家分享下。
1、avatar.html 41行 改为
<input type="file" accept="image/*" onChange="avatar_upload(this)" id="avatar_uploder" name="file"/>
加了个accept属性,方便启用相机或者接受手机相册图片。
2、avatar.html 100行前 插入
c["pw"]=$("#J_pic").width(); c["ph"]=$("#J_pic").height();
主要是用来存储图片的当前大小。因为在手机中,图片可能被缩小了,而jcrop截图所得的数据则是根据你看到的来计算。最终会导致实际裁出的图片只有一小块。
3、ProfileAction.class.php 144行 插入
$pw=I("post.pw"); $ph=I("post.ph"); if($pw!=$imginfo[0] || $ph!=$imginfo[1]){ $targ_w=round($imginfo[0]/$pw*$targ_w,0); $targ_h=round($imginfo[1]/$ph*$targ_h,0); $_POST['x']=round($imginfo[0]/$pw*$_POST['x'],0); $_POST['y']=round($imginfo[1]/$ph*$_POST['y'],0); }
这样就可以了。
补充两点:
1、其实只要用js在前台算好图片缩放比例,然后重新计算w,h,x,y的值传回后台就可以了,php文件根本不用改变。但我稍微查了下,要用js查看图片原始宽高好像挺复杂的,所以就用这个笨办法了。
2、上述用了一大堆post值,只是为了配合原来代码中的应用,理论上这些post都应先通过I取出来再计算。懂的自己改吧。
0.话题发布后没及时显示,请联系官方QQ群管理;
1.话题支持代码,qq截屏直接粘贴,和QQ群一样;
2.问题描述清,比如服务器版本,程序版本;
3.能上代码,就不用文字;
4.把问题发到话题后再发QQ群;
5.如果感觉回复者解答的不错,可以发红包!
6.多帮助别人也是对自己的锻炼!
7.付费讨论中只有提问者和付费用户才可以查看回复
1.评论积分+1;每天最多10次奖励
2.发布话题积分+1;每天最多5次奖励
3.垃圾评论积分-500;
4.黄色,暴力,违反我国法律评论直接封号