解决头像上传截取错位问题


修改  avatar.html

添加

c["pw"]=$(".jcrop-holder").width();
c["ph"]=$(".jcrop-holder").height();

记录图片的当前大小

QQ截图20160920170053.jpg


然后profilecontroller.php 中 修改 avatar_update()  方法:

添加:

                $size = $image->size();
                $pw=I("post.pw");
                $ph=I("post.ph");
                if($pw!=$size[0] || $ph!=$size[1]){
                    $targ_w=round($size[0]/$pw*$targ_w,0);
                    $targ_h=round($size[1]/$ph*$targ_h,0);
                    $x=round($size[0]/$pw*$x,0);
                    $y=round($size[1]/$ph*$y,0);
                }

QQ截图20160920172937.jpg

              

就可以了。原因是因为 上传之后展示出的 图片可能被缩小了,而截取的时候 是按照缩小的 图片参数 距离top 距离left,截取宽度,截取高度,而截取之前后台保存的是原始大小,然后 在是原始图片上去截取,肯定会发生偏移,所以先算出 缩放比例,分别乘以上述四个数值, 就可以截取正确区域了。

QQ截图20160920170852.jpg

好,成功!刚看了一下,官网这个头像  也会偏移

QQ截图20160920174314.jpg

打赏

评论

暂时关闭,稍后恢复~
文档请看10遍以上!有问题可加QQ群!
发表话题

源素材推荐

提问必知

0.话题发布后没及时显示,请联系官方QQ群管理;
1.话题支持代码,qq截屏直接粘贴,和QQ群一样;
2.问题描述清,比如服务器版本,程序版本;
3.能上代码,就不用文字;
4.把问题发到话题后再发QQ群;
5.如果感觉回复者解答的不错,可以发红包!
6.多帮助别人也是对自己的锻炼!
7.付费讨论中只有提问者和付费用户才可以查看回复

积分规则

1.评论积分+1;每天最多10次奖励
2.发布话题积分+1;每天最多5次奖励
3.垃圾评论积分-500;
4.黄色,暴力,违反我国法律评论直接封号


ThinkCMF 8.0.0发布啦!祝大家节日快乐! 立即体验!