主图和背景图合成一张图片

public function merge($dataArr) {
    $retArr["ret"] = array("retCod" => "0", "retMsg" => "merge success!");
    $path_1 = $dataArr['mainImg'];//要合成的主图地址,eg:http:www.xx.com/aa.png
    $path_2=$_SERVER['DOCUMENT_ROOT'].'/shareImg/cuxiao5.png';//背景图

    //创建图片对象
    $image_1 = $this->createImg($path_1);
    $image_2 = $this->createImg($path_2);

    file_put_contents("/server/qqq.txt", "aaa=".$image_2."\r\n",FILE_APPEND);
    file_put_contents('/server/'.date('Y-m-d').'.txt',date( 'Y-m-d H:i:s' ).' '.__FILE__.' '. __METHOD__.' '.__LINE__."eee=".$image_2, FILE_APPEND);
    file_put_contents('/server/'.date('Y-m-d').'.txt',date( 'Y-m-d H:i:s' ).' '.__FILE__.' '. __METHOD__.' '.__LINE__.' '.$path_1.'\r\nimage:'.$image_1.'\r\n', FILE_APPEND);

    //裁剪图片1
    $arrPic1 = getimagesize($path_1);
    $imgWidth = 400;
    $imgHeight = 320;

    $sss =sprintf("%d %d %d %d", $imgWidth, $imgHeight, $arrPic1[0], $arrPic1[1]);
    file_put_contents('/server/'.date('Y-m-d').'.txt',date( 'Y-m-d H:i:s' ).' '.__FILE__.' '. __METHOD__.' '.__LINE__.$sss, FILE_APPEND);

    //创建一个彩色的底图
    $image_dst = imagecreatetruecolor($imgWidth, $imgHeight);
    $aa = imagecopyresampled($image_dst, $image_1, 0, 0, 0, 0,$imgWidth,$imgHeight,$arrPic1[0], $arrPic1[1]*0.8);
    $imgPath = $_SERVER['DOCUMENT_ROOT'];

    //创建真彩画布
    $image_3 = imageCreatetruecolor(400, 400);

    //为真彩画布创建白色背景
    $color = imagecolorallocate($image_3, 255, 255, 255);
    imagefill($image_3, 0, 0, $color);

    //设置透明
    // src_h:源图象的高度
    imagecopyresampled($image_3, $image_dst, 0, 0, 0, 0, 400, 400, 400, 400);
    imagecopy($image_3, $image_2, 0, 0, 0, 0, 400, 400);

    // 输出合成图片
    $merge = $imgPath . '/shareImg/'.$dataArr['skuId'].'.png';
    imagepng($image_3, $merge);

    imagedestroy($image_1);
    imagedestroy($image_2);
    imagedestroy($image_3);
}
function createImg($path) {
    $image = pathinfo($path);
    switch (strtolower($image['extension'])) {
        case 'jpg':
            return imagecreatefromjpeg($path);
        case 'jpeg':
            return imagecreatefromjpeg($path);
        case 'png':
            return imagecreatefrompng($path);
        case 'gif':
            return imagecreatefromgif($path);
    }
}

背景图cuxiao5.png


cuxiao5.png

$dataArr['mainImg']传过来的要合成的主图地址

$dataArr['mainImg'].png

最终合成效果如下


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载自VR设计云课堂[https://www.jianshu.com/u/c7ffdc4b379e]Unity S...
    水月凡阅读 1,153评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,572评论 1 32
  • 7月份的成绩: 工作:进步的,操作视频6个,季度考核1次,操作考核1次,强化版的新人培训1次,考核1次。护理操作流...
    周春Baby阅读 203评论 0 1
  • 上午,太阳的脸在雾霾中灰头土脸的,像刚刚睡醒。天气冷呵呵的,街上的行人也看起来无精打采的。下午,天阴了下来,灰...
    老马识新途阅读 223评论 0 1
  • 我有两个宝贝,有时候就在想,到底是怎样的爱,才配的上这两个天使宝贝? 哥哥大一些,他有自己的想法,也会有自己的行动...
    雪莉百合亲子阅读践行者阅读 432评论 1 0

友情链接更多精彩内容