PHP 图片合成

PHP 专栏收录该内容
3 篇文章 0 订阅

需求一

将活动背景图片和动态二维码图片合成一张图片

// 图片一
$path_1 = 'https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png';
// 图片二
$path_2 = 'http://tb1.bdstatic.com/tb/static-client/img/webpage/wap_code.png';
// 创建图片对象
$image_1 = imagecreatefrompng($path_1);
$image_2 = imagecreatefrompng($path_2);
// 合成图片
imagecopymerge($image_1, $image_2, 0, 0, 0, 0, imagesx($image_2), imagesy($image_2), 100);
// 输出合成图片
var_dump(imagepng($image_1, Mage::getBaseDir('media').'/tmp/merge/merge.png'));

需求二

将活动背景图片设置透明,然后和动态二维码图片合成一张图片

// 图片一
$path_1 = 'https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png';  
// 图片二
$path_2 = 'http://tb1.bdstatic.com/tb/static-client/img/webpage/wap_code.png';  
// 创建图片对象
$image_1 = imagecreatefrompng($path_1);  
$image_2 = imagecreatefrompng($path_2);  
// 创建真彩画布
$image_3 = imageCreatetruecolor(imagesx($image_1),imagesy($image_1));
// 为真彩画布创建白色背景
$color = imagecolorallocate($image_3, 255, 255, 255);
imagefill($image_3, 0, 0, $color);
// 设置透明
imageColorTransparent($image_3, $color);
// 复制图片一到真彩画布中(重新取样-获取透明图片)
imagecopyresampled($image_3, $image_1, 0, 0, 0, 0, imagesx($image_1), imagesy($image_1), imagesx($image_1), imagesy($image_1));
// 与图片二合成
imagecopymerge($image_3, $image_2, 0, 0, 0, 0, imagesx($image_2), imagesy($image_2), 100);  
// 输出合成图片
var_dump(imagepng($image_3, Mage::getBaseDir('media').'/tmp/merge/merge.png')); 

备注

  1. 创建图片对象也可使用
    $image_1 = imagecreatefromstring(file_get_contents($path_1));
  2. 获取图片的宽、高及类型也可以使用
    list($imgWidth, $imgHight, $imgType) = getimagesize($path_1);
  3. 增加文字水印
    // 添加文字水印
    $black = imagecolorallocate($image_1, 0, 0, 0);
    $font = '/usr/share/fonts/dejavu/DejaVuSans.ttf';
    // 方法一
    imagettftext($image_1, 16, 0, imagesx($image_1)-160, imagesy($image_1)-20, $black, $font, 'MKTK-HELOO');
    // 方法二 
    imagestring($image_1, 3, imagesx($image_1)-160, imagesy($image_1)-20, "MKTK-HELOO", $black);


  4. 查看图像处理和GD函数列表
  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值