开发者社区> 问答> 正文

请教关于php图片处理的问题

把用户上传的jpg文件保存到服务器上的一个文件夹中,在把该文件夹里的jpg纵向拼合成一张长图并把长图保存为png给用户反回,
现在图片的拼合不会,求一个例子

展开
收起
小旋风柴进 2016-03-09 15:49:01 2604 0
1 条回答
写回答
取消 提交回答
  • <?php
    $imgs    = array();
    $imgs[0] = 'imgs/1.jpg';
    $imgs[1] = 'imgs/2.jpg';
    $imgs[2] = 'imgs/3.jpg';
    $imgs[3] = 'imgs/4.jpg';
    $target  = 'emp.jpg'; //背景图片
    
    $target_img = Imagecreatefromjpeg($target);
    
    $source = array();
    
    foreach ($imgs as $k => $v) {
        $source[$k]['source'] = Imagecreatefromjpeg($v);
    
        $source[$k]['size'] = getimagesize($v);
    
    }
    
    //imagecopy ($target_img,$source[0]['source'],2,2,0,0,$source[0]['size'][0],$source[0]['size'][1]);
    //imagecopy ($target_img,$source[1]['source'],250,2,0,0,$source[1]['size'][0],$source[1]['size'][1]);
    $num1 = 0;
    $num  = 1;
    $tmp  = 2;
    $tmpy = 2; //图片之间的间距
    for ($i = 0; $i < 4; $i++) {
        imagecopy($target_img, $source[$i]['source'], $tmp, $tmpy, 0, 0, $source[$i]['size'][0], $source[$i]['size'][1]);
    
        $tmp = $tmp + $source[$i]['size'][0];
        $tmp = $tmp + 5;
        if ($i == $num) {
            $tmpy = $tmpy + $source[$i]['size'][1];
            $tmpy = $tmpy + 5;
            $tmp  = 2;
            $num  = $num + 3;
        }
    }
    Imagejpeg($target_img, 'pin.jpg');
    
    ?>
    <img src="pin.jpg">
    2019-07-17 18:56:19
    赞同 展开评论 打赏
问答分类:
PHP
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载