美文网首页php知识积累
主图和背景图合成一张图片

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

作者: hey_沙子 | 来源:发表于2019-11-26 15:16 被阅读0次
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

相关文章

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

    背景图cuxiao5.png $dataArr['mainImg']传过来的要合成的主图地址 最终合成效果如下

  • css常见技巧

    CSS Sprite(雪碧图|精灵图)雪碧图是把多个背景图片合成一张,通过background-position定...

  • 任务九~CSS常见技巧

    一、CSS Sprite(雪碧图|精灵图)指什么? 有什么作用? CSS Sprite把多个背景图片合成为一张,通...

  • php 图片合成

    php 图片合成(例:背景图加二维码图)

  • CSS高级技巧

    1、CSS精灵技术 sprite 减少请求次数 合成一张大图片(精灵图,雪剪图)处理网页背景图像的方式 2、字体图...

  • 绿幕抠像流程简介

    素材 为了简化实验计算原图和背景图采取了同样长宽是800*450的图片 原图: 背景图: 合成后效果图 原图素材R...

  • PHP图片合成

  • PS教程:利用滤镜合成特效水骏马

    素材图片1 素材图片2 最终合成效果: 1、在Photoshop中打开背景图(风景图)并复制背景图为背景副本。将马...

  • PHP实现图片合成新图片

    //案例一:将活动背景图片和动态二维码图片合成一张图片 //图片一$path_1= 'https://ss0.bd...

  • CSS认识5

    CSS Sprite(雪碧图|精灵图)指什么? 有什么作用是指把所需要的较小的背景图片合成一张来使用的技术。这样可...

网友评论

    本文标题:主图和背景图合成一张图片

    本文链接:https://www.haomeiwen.com/subject/rfoewctx.html