可是,研究了一天,发现:
ThinkPHP 扩展的图片处理类,无法打开SAE上Storage的图片
我把图片地址直接替换成了Storage的地址
http://aite5-avatar.stor.sinaapp.com/avatar.jpg
//裁剪并保存用户头像
public function cropImg(){
//图片裁剪数据
$params = $this->_post(); //裁剪参数
if(!isset($params) && empty($params)){
return;
}
//头像目录地址
$path = './avatar/';
//要保存的图片
$real_path = sae_storage_root('avatar').'/avatar2.jpg';
//临时图片地址
$pic_path = 'http://aite5-avatar.stor.sinaapp.com/avatar.jpg';
import('ORG.Util.Image.ThinkImage');
$Think_img = new ThinkImage(THINKIMAGE_GD);
//裁剪原图
$Think_img->open($pic_path)->crop($params['w'],$params['h'],$params['x'],$params['y'])->save($real_path);
//生成缩略图
$Think_img->open($real_path)->thumb(100,100, 1)->save($path.'avatar_100.jpg');
$Think_img->open($real_path)->thumb(60,60, 1)->save($path.'avatar_60.jpg');
$Think_img->open($real_path)->thumb(30,30, 1)->save($path.'avatar_30.jpg');
我追踪代码发现,在ImageGd.class.php的41行执行出错也就是这一行
if(!is_file($imgname)) throw new Exception('不存在的图像文件');
public function open($imgname){
//检测图像文件
if(!is_file($imgname)) throw new Exception('不存在的图像文件');
//获取图像信息
$info = getimagesize($imgname);
//检测图像合法性
if(false === $info || (IMAGETYPE_GIF === $info[2] && empty($info['bits']))){
throw new Exception('非法图像文件');
}

求教各位老大,有没有好的解决方案。。
再有想问的是,在SAE上,有什么样其他的办法裁剪头像呢???、、、
最佳答案
