php选择手机相片,头像直接从手机图库选择或者拍照上传

我刚好有这个需求,顺手解决了。跟大家分享下。

1、avatar.html  41行 改为

加了个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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值