php生成推广二维码海报、合成图片

1、海报背景图。背景图一般存服务器,程序本地读取;
2、推广二维码。可以是二维码图片链接,也可以是字符串图像流。如果自己生成二维码,详见phpqrcode官网,地址:https://sourceforge.net/projects/phpqrcode。
3、开启PHP的GD扩展

index.php

<?phprequire_once  "Imgcode.php";$codedata = array("portrait" => array("thumb" => 'test.jpg', "left" => 40, "top" => 40, "width" => 100, "height" => 100), // 店铺logo"shopname" => array("text" => '店铺名称', "left" => 160, "top" => 80, "size" => 28, "width" => 360, "height" => 50, "color" => "#333"), // 店铺名称"thumb" => array("thumb" => 'code.png', "left" => 40, "top" => 160, "width" => 560, "height" => 560), // 店铺二维码"desc" => array("text" => "长按二维码扫码进入", "left" => 210, "top" => 980, "size" => 18, "color" => "#666"));$parameter = array("goodsid" => 'goodsid', "qrcode" => 'code.png',/* 二维码地址 */ "codedata" => $codedata, "mid" => 0, "codeshare" => 1);$img = createcode($parameter);echo  '<img src="'.$img.'" height="100%">';?>

Imgcode.php

<?phpfunction createcode($parameter){$path =  "addons/data/imgcode/";$goodsid = $parameter["goodsid"]; // 商品id$qrcode = $parameter["qrcode"]; //  二维码$data = $parameter["codedata"];$mid = $parameter["mid"];$codeshare = $parameter["codeshare"];if (!is_dir($path)) {mkdir($path,0777,true);}$md5 = md5(json_encode(array("goodsid" => $goodsid, "title" => $data["title"]["text"], "price" => $data["price"]["text"], "codeshare" => $parameter["codeshare"], "codedata" => $data, "mid" => $mid)));$file = $md5 . ".jpg";if (!is_file($path . $file)) {set_time_limit(0);@ini_set("memory_limit", "256M");$target = imagecreatetruecolor(640, 1060);  // 海报宽高$color = imagecolorAllocate($target, 255, 255, 255);imagefill($target, 0, 0, $color);imagecopy($target, $target, 0, 0, 0, 0, 640, 1060);$target = mergeText($target, $data["shopname"], $data["shopname"]["text"]);$thumb = preg_replace("/\\/0\$/i", "/96", $data["portrait"]["thumb"]);!empty($data['portrait']) && $target = mergeImage($target, $data["portrait"], $thumb);$thumb = preg_replace("/\\/0\$/i", "/96", $data["thumb"]["thumb"]);!empty($data['thumb']) && $target = mergeImage($target, $data["thumb"], $thumb);$qrcode = preg_replace("/\\/0\$/i", "/96", $data["qrcode"]["thumb"]);!empty($data['qrcode']) && $target = mergeImage($target, $data["qrcode"], $qrcode);$target = mergeText($target, $data["title"], $data["title"]["text"]);$target = mergeText($target, $data["price"], $data["price"]["text"]);$target = mergeText($target, $data["desc"], $data["desc"]["text"]);imagepng($target, $path . $file);imagedestroy($target);}$img = "addons/data/imgcode/"  . $file;return $img;}
function createImage($imgurl){ini_set("memory_limit", "-1");$imgurl = file_get_contents($imgurl,true);return imagecreatefromstring($imgurl);}
function mergeImage($target, $data, $imgurl){// if(empty($imgurl))$img = createImage($imgurl);$w = imagesx($img);$h = imagesy($img);imagecopyresized($target, $img, $data["left"], $data["top"], 0, 0, $data["width"], $data["height"], $w, $h);imagedestroy($img);return $target;}
function mergeText($target, $data, $text, $center = false){// $font =  "addons/data/msyh.ttf";$font = realpath('addons/data/msyh.ttf');$colors = hex2rgb($data["color"]);$color = imagecolorallocate($target, $colors["red"], $colors["green"], $colors["blue"]);if ($center) {$fontBox = imagettfbbox($data["size"], 0, $font, $data["text"]);imagettftext($target, $data["size"], 0, ceil(($data["width"] - $fontBox[2]) / 2), $data["top"] + $data["size"], $color, $font, $text);} else {imagettftext($target, $data["size"], 0, $data["left"], $data["top"] + $data["size"], $color, $font, $text);}return $target;}
function hex2rgb($colour){if ($colour[0] == "#") {$colour = substr($colour, 1);}if (strlen($colour) == 6) {list($r, $g, $b) = array($colour[0] . $colour[1], $colour[2] . $colour[3], $colour[4] . $colour[5]);} else {if (strlen($colour) == 3) {list($r, $g, $b) = array($colour[0] . $colour[0], $colour[1] . $colour[1], $colour[2] . $colour[2]);} else {return false;}}$r = hexdec($r);$g = hexdec($g);$b = hexdec($b);return array("red" => $r, "green" => $g, "blue" => $b);}

php生成推广二维码海报、合成图片demo相关推荐

  1. python制作微信个人二维码_一个python自动生成微信二维码海报的轮子

    由于最近需要做一个线上活动,所以策划了一个微信二维码海报的用户裂变方案.做好了需求以后交给我们可爱的程序媛妹妹.三天过后去问她,她的表情是这样的 她是不是在说,"啊啊,真是不好意思" ...

  2. PHP生成带二维码的分享图片

    综述 项目开发中需求,要求在APP中进行分享的时候可以分享图片,图片由美工进行设计,其上带有二维码,分享给别人可以直接长按图片进行识别.这种方式在分享中用户体验更好,首先图片由美工设计很好看,其次这种 ...

  3. 解决微擎人人商城分销中心无法生成推广二维码、商品二维码的问题

    如果推广二维码 和 商品 二维码 无法生成 /addons/ewei_shopv2/data/qrcode/  看看是否有这个目录 没有的话 新建 设置写入权限

  4. thinkphp用phpqrcode生成二维码(含中间带logo、临时二维码)或生成微信二维码海报的方法

    前期准备: 1.phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/ 2.PHP环境必须开启支持GD2扩展库支持(一般情况下都 ...

  5. 【python 生成自己的二维码】推广二维码带log图片

    如何安装?用pip安装 pip install qrcode pip install pillow # encoding: utf-8import sys reload(sys) sys.setdef ...

  6. qrcode将生成的二维码转成图片格式

    微信里打开页面时需要长按识别二维码,所以需要转下图片 <div id="qrcode"></div> <img id="img"/ ...

  7. 【黄啊码】PHP配合微信公众号生成推广二维码

    前言 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送. 1.目前有2种类型的 ...

  8. 生成二维码,合成图片

    1.动态生成二维码 链接:https://pan.baidu.com/s/14cDyPTWOn_YuHWE-cfrIfg 提取码:6bfv 使用: <div class="qrcode ...

  9. 将qrcode生成的二维码转成图片

    将页面上原来canvas格式的二维码隐藏,新建一个div用于存放生成的img标签 <div class="canvasCode" id ="query" ...

最新文章

  1. oracle sql 执行计划分析_《真正读懂Oracle SQL执行计划》
  2. 机器学习案例:scikit-learn实现ebay数据分析
  3. 创建调用查询删除存储过程语法
  4. python中socket实现代理功能_python实现代理服务功能实例
  5. YOLO升级版:YOLOv2和YOLO9000解析
  6. [51单片机] TFT2.4彩屏3 [自制动画效果-滑块+吊钩]
  7. 127.0.0.0与0.0.0.0的区别
  8. Laravel 怎么查看执行的Sql语句
  9. 解决方案:OpenResty 网站首页数据缓存
  10. NVM node版本管理工具的安装和使用
  11. Ubuntu 安装 gcc-4.8
  12. python电力系统分析_PyPSA电力系统分析简介
  13. U盘安装CentOS系统详细教程
  14. 计算几何——扇形面积
  15. 阿里云服务器安全组配置
  16. 前端开发公众号的调试
  17. 用powershell代码安装Windows软件
  18. 如何实现上传多个图片并依次展示_如何在一张ppt中插入多张图片并能依次播放...
  19. 解决Oracle报错ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展
  20. 分治策略时间复杂度计算

热门文章

  1. 网页pdf打印——window.print()
  2. Tomcat服务器日志输出格式设置
  3. [oeasy]python0131_[趣味拓展]各种符号_汉语拼音符号_中文全角英文字母_中文全角标点
  4. 拉取并且mongo保存聚宽的期货分钟线数据
  5. Sentinel --- 分布式系统的流量方卫兵
  6. uniapp中进行地图定位
  7. 没学历没经验没外语没技能,啥都没有靠啥找工作?
  8. 2015伦敦深度学习峰会笔记:来自DeepMind、Clarifai等大神的分享
  9. ML.net 3-情绪预测
  10. 微信小程序:uni-app页面Page和组件Component生命周期执行的先后顺序