GD(代表 Graphic Draw)是一个开源代码库,在 PHP 中创建和操作图像是必需的。 除了创建 JPEG、PNG 和 GIF 图像外,它还可以创建图形、图表和缩略图。

下面的例子是PHP使用GD库(Graphic Draw)进行图形绘制,绘制电商小程序的商品分享海报。

//创建画布
$im = imagecreatetruecolor(640, 1136);//填充画布背景色
$color = imagecolorallocate($im, 255, 255, 255);
imagefill($im, 0, 0, $color);//获取字体文件
$font_file = "poster/msyh.ttc"; //simhei.ttf
$font_file_bold = "poster/msyh.ttc";  //simhei.ttf//设定字体的颜色
$font_color_1 = ImageColorAllocate ($im, 140, 140, 140);
$font_color_2 = ImageColorAllocate ($im, 28, 28, 28);
$font_color_3 = ImageColorAllocate ($im, 129, 129, 129);
$font_color_red = ImageColorAllocate ($im, 217, 45, 32);
$font_color_white = ImageColorAllocate ($im, 255, 255, 255);
$font_color_black = ImageColorAllocate($im,0,0,0);
$font_color_price = ImageColorAllocate($im,216,172,147);
$font_color_oldprice = ImageColorAllocate($im,119,119,119);
$fang_bg_color = ImageColorAllocate ($im, 254, 216, 217);//商品图片
list($g_w,$g_h) = getimagesize($request->param('pic'));
$goodImg = $this->createImageFromFile($request->param('pic'));
imagecopyresized($im, $goodImg, 0, 0, 0, 0, 640, 640, $g_w, $g_h);//商品标题
imagettftext($im, 26,0, 40, 690, $font_color_black ,$font_file, $this->mg_cn_substr($request->param('name'),46,0,false));
imagettftext($im, 26,0, 40, 730, $font_color_black ,$font_file, $this->mg_cn_substr($request->param('name'),46,46,true));
//商品售价
imagettftext($im, 36,0, 40, 782, $font_color_price ,$font_file, "¥".$request->param('price'));
if($request->param('oldPrice')!=null&& $request->param('oldPrice')!=""&& $request->param('oldPrice')!="null"&& $request->param('oldPrice')!="NULL"){//商品原价imagettftext($im, 26,0, 40, 830, $font_color_oldprice ,$font_file, "¥".$request->param('oldPrice'));//商品原价的横线imageline ( $im , 40 , 818 , strlen("¥".$request->param('oldPrice'))*21 , 818 , $font_color_oldprice);
}//处理二维码
$qrData['page'] = $request->param('path');
$qrData['scene'] = md5($request->param('id').$request->param('inviteCode').$flag);
$res = "生成二维码";
$data = json_decode($res);
imagecopyresized($im, imagecreatefromstring($res), 40, 900, 0, 0, 200, 200, 430, 430);//用户头像
list($l_w,$l_h) = getimagesize($request->param('avatar'));
$logoImg = $this->createImageFromFile($request->param('avatar'));
imagecopyresized($im, $logoImg, 270, 900, 0, 0, 70, 70, $l_w, $l_h);$image_width    = 70;
$image_height   = 70;
$resource    = imagecreatetruecolor($image_width, $image_height);  // 创建一个矩形的图像
imageantialias($resource, true);
$bgcolor     = imagecolorallocatealpha($resource, 0, 0, 0, 127);       // 图像的背景
imagefill($resource, 0, 0, $bgcolor);// 圆角处理
$radius  = 35;
// lt(左上角)
$lt_corner  = $this->get_lt_rounder_corner($radius);
imagecopymerge($resource, $lt_corner, 0, 0, 0, 0, $radius, $radius, 100);
// lb(左下角)
$lb_corner  = imagerotate($lt_corner, 90, 0);
imagecopymerge($resource, $lb_corner, 0, $image_height - $radius, 0, 0, $radius, $radius, 100);
// rb(右上角)
$rb_corner  = imagerotate($lt_corner, 180, 0);
imagecopymerge($resource, $rb_corner, $image_width - $radius, $image_height - $radius, 0, 0, $radius, $radius, 100);
// rt(右下角)
$rt_corner  = imagerotate($lt_corner, 270, 0);
imagecopymerge($resource, $rt_corner, $image_width - $radius, 0, 0, 0, $radius, $radius, 100);
//合并
imagecopyresized($im, $resource, 270, 900, 0, 0, 70, 70, $image_width, $image_height);//用户昵称
imagettftext($im, 20,0, 354, 930, $font_color_black ,$font_file, $request->param('nickname'));
//固定提示语
list($l_w,$l_h) = getimagesize('poster/1.png');
$logoImg = @imagecreatefrompng('poster/1.png');
imagecopyresized($im, $logoImg, 354, 940, 0, 0, 248, 40, $l_w, $l_h);list($l_w,$l_h) = getimagesize('poster/2.png');
$logoImg = @imagecreatefrompng('poster/2.png');
imagecopyresized($im, $logoImg, 270, 1015, 0, 0, 280, 68, $l_w, $l_h);list($l_w,$l_h) = getimagesize('poster/3.png');
$logoImg = @imagecreatefrompng('poster/3.png');
imagecopyresized($im, $logoImg, 565, 1015, 0, 0, 36, 68, $l_w, $l_h);//处理图片返回base64
ob_start();
imagepng ($im);
$image_data = ob_get_contents();
ob_end_clean();
$base64_image = 'data:image/png;base64,' . base64_encode($image_data);//释放空间
imagedestroy($im);
imagedestroy($goodImg);
print_r($base64_image);

使用PHP的GD库绘制电商小程序的商品分享海报相关推荐

  1. Mall4j电商小程序源码分享

    1.小程序简介 Mall4j 项目致力于为中小企业打造一个完整.易于维护的开源的电商系统,采用现阶段流行技术实现.后台管理系统包含商品管理.订单管理.运费模板.规格管理.会员管理.运营管理.内容管理. ...

  2. 电商小程序的发展以及优势、劣势分析

    电商已经成为我们日常生活的一部分,它在小程序上的发展令人瞩目.本文为你解析电商小程序的发展现状,近三年来电商小程序发展出的细分类别以及探究电商小程序发展过程中的优势与劣势. 一.电商小程序的发展现状 ...

  3. O2O电商小程序源码(仿造盒马鲜生APP)

    O2O电商小程序源码分享,这是一款仿造仿造盒马鲜生APP开发的小程序,以下是小程序的截图页面,只需要做简单的修改和配置即可运行 项目下载地址: https://download.csdn.net/do ...

  4. 电商小程序 -- 商品多规格选择弹框

    最近在搞一个电商小程序,一个月左右入门到放弃 直接上效果图 商品规格选择功能 1, choose.js文件 2, choose.json 文件(*没用的) 3, choose.wxml 布局文件 4, ...

  5. 智慧物业小程序_刷脸支付+电商小程序+智慧酒店营销方案

    我们这边刷脸支付+电商小程序+智慧酒店行业解决方案,支付宝微信订房小程序,芝麻信用免押住,数字化经营发券引流,未来酒店:0押金 0房费 退房扣款,不占用资金,用户增长信用分,线上订房小程序,无接触服务 ...

  6. 小程序如何跳转到各大电商小程序进行CPS赚钱

    小程序系统广告门槛高,流量主费用低,个人开发者难以变现.电商CPS也是一种不错的变现方式,在自己的小程序内添加购物优惠导航入口.自己小程序的用户通过导航跳转到电商平台,进行购物,购物完成结算后,作为开 ...

  7. 拼团商城小程序高保真原型模板、支付、优惠券、客服、物流、收藏、足迹、优惠券、订单管理、评价、设置、地址、售后、拼团、消息通知、商城小程序、电商小程序、拼团电商、移动端电商、高保真电商、电商app

    主要功能:首页:(轮播图.活动快速入口.商品推荐).搜索 分类: 商品分类(三级显示).商品详情.拼团or单独购买.订单结算.拼团状态  消息:(客服.通知.物流.活动)我的:收藏.足迹.优惠券.订单 ...

  8. Axure电商服务小程序交互原型模板、电商小程序、拼团特惠、积分兑换、LBS电商小程序、活动、订单、会员、购物车、签到、钱包充值、拼团拼单、优惠券、电商原型、rp源文件、Axure原型、移动端电商系统

    Axure电商服务小程序交互原型模板.电商小程序.拼团特惠.积分兑换.LBS电商小程序.活动.订单.会员.购物车.签到.钱包充值.拼团拼单.优惠券.电商原型.rp源文件.Axure原型.移动端电商系统 ...

  9. 电商小程序实战教程-分类导航

    电商小程序实战教程 第一章 总体介绍 第二章 创建数据源 第三章 创建管理后台 第四章 首页的创建 前言 从上一篇开始,我们就正式进入到了电商小程序的实战开发阶段.首先是介绍了首页的开发,首页主要是展 ...

最新文章

  1. Ubuntu系统版本升级(提前版)
  2. 把现有的typesctipt+react项目接入到electron
  3. 最小树形图(朱刘算法)
  4. 在P5QL上激活Windows Vista
  5. 解决:Please specify a different SDK name--PyCharm报错
  6. 为支持nginx高并发而修改的一些Linux内核参数
  7. java培训学费_太原java培训班价格表
  8. jquery系列教程2-style样式操作全解
  9. Scott Mitchell 的ASP.NET 2.0数据教程之十五:在GridView的页脚中显示统计信息
  10. VB.net小技巧——ClickOnce应用程序版本号自动递增
  11. Windows:修改键盘映射表
  12. JavaScript的onfocus与onblur用法
  13. Android应用安全之第三方SDK安全
  14. Android O 版本(Android 8.0) 存储空间不足时提醒
  15. linux不识别ntfs分区,解决linux 不能识别ntfs分区问题(linux系统挂载移动硬盘)
  16. Tagtraum.Industries.beaTunes.v3.5.7.Incl.Keygen-NOY
  17. 前端判断访问的浏览器是否为IE8
  18. 问题 F: 【数论】青蛙的约会
  19. 记录常用正则表达式(亲测,有用)
  20. python - 单因子分析

热门文章

  1. Symantec 赛门铁克系列软件清除工具
  2. 类器官——从 2D 到 3D 的进阶
  3. 用安卓手机看txt小说,阅读器APP怎么选
  4. SUA--Win7的有趣功能
  5. 模具设计干货,UG部件的自动取整
  6. ntldr is compressed 解决方法 attrib -c ntldr
  7. vue中如何返回历史路由_如何配置局域网中的多台无线路由器【图文教程】
  8. Android 高质量开发之崩溃优化
  9. .find()函数的用法
  10. 解决org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 异常