php要做一个头像裁剪功能,请问谁有案例,或者帮忙给思路,谢谢了额

YIPU 发布于 2012/08/02 15:09
阅读 2K+
收藏 4

请问php什么操作才能得到右边的那张小图呢

加载中
0
西门飞
西门飞
这个貌似和PHP没关系 网上的案列基本是flash实现的功能
亦可塞艇
亦可塞艇
这个是flash来实现的
YIPU
YIPU
怎么没有关系啊,最后裁剪图片不需要php来创建图像?
0
voov
voov

可以使用ucenter里面的头像上传功能,功能一模一样,可以给他抠出来

 

0
傅小黑
傅小黑

jquery的 jcrop插件吧。。。js负责不了裁剪图片,只是把裁剪尺寸给了后端。。
生成了图像,然后ajax回调到页面显示出来,就是即时的啦。。

YIPU
YIPU
看图片,我就是用的jcrop啊。里面有例子,不知道怎么用
0
zplswf
zplswf
OSC 就是这个做的
0
诸葛非卿
诸葛非卿
如果只是用PHP的话,怕是难度比较大,如果是图片的话,PHP只会把这个图片缩小,很难做到从图片相应位置坐选择。。
0
诸葛非卿
诸葛非卿
不过,我倒是可以提供一思路,你可以先获取图片文件的大小,然后依据图片文件的最边缘的位置到你选择的位置,通过调用图片创建文件,将这部份你选择的文件做成白底图片让后覆盖在原图片文件上面。。不知道这种方式能不能用。。
0
deleted
deleted

先上传图片

预览的时候用js确定缩放比例和裁剪坐标及尺寸,把这些传给php,让php在服务端对图片进行缩放和裁剪

0
诸葛非卿
诸葛非卿

下面这段代码是从别处COPY过来的,没有测试过,但是思路比较清晰,可以给你做个参考。。

list($src_w,$src_h)=getimagesize($src_img);  // 获取原图尺寸

$dst_scale = $dst_h/$dst_w; //目标图像长宽比
$src_scale = $src_h/$src_w; // 原图长宽比

if($src_scale>=$dst_scale){  // 过高
$w = intval($src_w);
$h = intval($dst_scale*$w);

$x = 0;
$y = ($src_h - $h)/3;
}
else{ // 过宽
$h = intval($src_h);
$w = intval($h/$dst_scale);

$x = ($src_w - $w)/2;
$y = 0;
}

// 剪裁
$source=imagecreatefromjpeg($src_img);
$croped=imagecreatetruecolor($w, $h);
imagecopy($croped,$source,0,0,$x,$y,$src_w,$src_h);

// 缩放
$scale = $dst_w/$w;
$target = imagecreatetruecolor($dst_w, $dst_h);
$final_w = intval($w*$scale);
$final_h = intval($h*$scale);
imagecopyresampled($target,$croped,0,0,0,0,$final_w,$final_h,$w,$h);

// 保存
$timestamp = time();
imagejpeg($target, "$timestamp.jpg");
imagedestroy($target);

0
Dr.Who
Dr.Who

思路有问题,这个明显要用JS。

如果只考虑php做图像处理,随便找个库。

PS:python有opencv库哦,图像处理很方便的。

0
匿名t3a
匿名t3a
PHP简单啊 把 jcrop提交过去的坐标跟大小 用PHP剪裁下就可以了
返回顶部
顶部