예제 #1
0
 public function saeimage()
 {
     //从网络上抓取要合成的多张图片
     $img1 = file_get_contents('http://ss2.sinaimg.cn/bmiddle/53b05ae9t73817f6bf751&690');
     $img2 = file_get_contents('http://timg.sjs.sinajs.cn/miniblog2style/images/common/logo.png');
     $img3 = file_get_contents('http://i1.sinaimg.cn/home/deco/2009/0330/logo_home.gif');
     //实例化SaeImage并取得最大一张图片的大小,稍后用于设定合成后图片的画布大小
     $img = new SaeImage($img1);
     $size = $img->getImageAttr();
     //清空$img数据
     $img->clean();
     //设定要用于合成的三张图片(如果重叠,排在后面的图片会盖住排在前面的图片)
     $img->setData(array(array($img1, 0, 0, 1, SAE_TOP_LEFT), array($img2, 0, 0, 0.5, SAE_BOTTOM_RIGHT), array($img3, 0, 0, 1, SAE_BOTTOM_LEFT)));
     //执行合成
     $img->composite($size[0], $size[1]);
     //输出图片
     $img->exec('jpg', true);
 }
예제 #2
0
 $img->setData($dumpdata);
 $img->resize(600);
 // 等比缩放到600宽
 $new_data = $img->exec('jpg');
 // 执行处理并返回处理后的二进制数据
 //转换失败
 if ($new_data === false) {
     exit_status('error', 'p1:' . $img->errmsg());
 }
 $size = $img->getImageAttr();
 //覆盖加入3张图片
 $logo_ten_year_img = file_get_contents('../res/images/logo_ten_year110.png');
 $logo_zfb_img = file_get_contents('../res/images/logo_zfb100.png');
 $text_bg_img = file_get_contents('../res/images/text_back350.png');
 //清空$img数据
 $img->clean();
 //设定要用于合成的三张图片(如果重叠,排在后面的图片会盖住排在前面的图片)
 $img->setData(array(array($new_data, 0, 0, 1, SAE_TOP_LEFT), array($logo_ten_year_img, -10, 10, 1, SAE_BOTTOM_RIGHT), array($logo_zfb_img, -10, -10, 1, SAE_TOP_RIGHT), array($text_bg_img, 0, -47, 1, SAE_TOP_LEFT)));
 //执行合成
 $img->composite($size[0], $size[1]);
 //输出图片
 $new_data = $img->exec('jpg');
 if ($new_data === false) {
     exit_status('error', 'p2:' . $img->errmsg());
 }
 $s = new SaeStorage();
 $result = $s->write('rank', $file_name, $new_data);
 if (!$result) {
     exit_status('fail', $result);
 }
 $url = $s->getUrl('rank', $file_name);
예제 #3
0
function thumb_url($stor, $file, $size = '200')
{
    global $storage;
    if ($storage->fileExists($stor, $size . '/' . $file)) {
        return $storage->getUrl($stor, $size . '/' . $file);
    } elseif ($storage->fileExists($stor, 'original/' . $file)) {
        // 读取原始图片信息
        $img_data = $storage->read($stor, 'original/' . $file);
        $img_url = $storage->getUrl($stor, 'original/' . $file);
        //$img_info = getimagesize($img_url);
        // 生成缩略图
        $img = new SaeImage();
        $img->setData($img_data);
        $img_info = $img->getImageAttr();
        $img->resize(200);
        $resizeRa = 200 / $img_info[0];
        $cropYend = $img_info[1] * $resizeRa;
        if ($cropYend > 150) {
            $cropy = 150 / $cropYend;
            $img->crop(0, 1, 0, $cropy);
        }
        $storage->write($stor, $size . '/' . $file, $img->exec());
        $img->clean();
        return $storage->getUrl($stor, $size . '/' . $file);
    } else {
        return false;
    }
}