上图 455*651  灰色区域:left 200; top 200; width 200; height 200;$config = array('image' => array(array('url' => $qrcode,     //二维码资源'stream' => 0,'left' => $val['left'],//插入的坐标'top' => $val['top'],'right' => 0,'bottom' => 0,'width' => $val['width'],//图片宽'height' => $val['height'],//图片高'opacity' => 100)),'background' => APP_PATH . '..' . $val['address']      //背景图
);
/*** 生成宣传海报 核心代码* @param array  参数,包括图片和文字* @param string $filename 生成海报文件名,不传此参数则不生成文件,直接输出图片* @return [type] [description]*/
function createPoster($config = array(), $filename = "")
{//如果要看报什么错,可以先注释调这个headerif (empty($filename)) header("content-type: image/png");$imageDefault = array('left' => 0,'top' => 0,'right' => 0,'bottom' => 0,'width' => 75,'height' => 75,'opacity' => 100);$textDefault = array('text' => '','left' => 0,'top' => 0,'fontSize' => 32,       //字号'fontColor' => '255,255,255', //字体颜色'angle' => 0,);$background = $config['background'];//海报最底层得背景//背景方法$backgroundInfo = getimagesize($background);$backgroundFun = 'imagecreatefrom' . image_type_to_extension($backgroundInfo[2], false);$background = $backgroundFun($background);$backgroundWidth = imagesx($background);  //背景宽度$backgroundHeight = imagesy($background);  //背景高度$imageRes = imageCreatetruecolor($backgroundWidth, $backgroundHeight);$color = imagecolorallocate($imageRes, 0, 0, 0);imagefill($imageRes, 0, 0, $color);// imageColorTransparent($imageRes, $color);  //颜色透明imagecopyresampled($imageRes, $background, 0, 0, 0, 0, imagesx($background), imagesy($background), imagesx($background), imagesy($background));//处理了图片if (!empty($config['image'])) {foreach ($config['image'] as $key => $val) {$val = array_merge($imageDefault, $val);$info = getimagesize($val['url']);$function = 'imagecreatefrom' . image_type_to_extension($info[2], false);if ($val['stream']) {   //如果传的是字符串图像流$info = getimagesizefromstring($val['url']);$function = 'imagecreatefromstring';}$res = $function($val['url']);$resWidth = $info[0];$resHeight = $info[1];//建立画板 ,缩放图片至指定尺寸$canvas = imagecreatetruecolor($val['width'], $val['height']);imagefill($canvas, 0, 0, $color);//关键函数,参数(目标资源,源,目标资源的开始坐标x,y, 源资源的开始坐标x,y,目标资源的宽高w,h,源资源的宽高w,h)imagecopyresampled($canvas, $res, 0, 0, 0, 0, $val['width'], $val['height'], $resWidth, $resHeight);$val['left'] = $val['left'] < 0 ? $backgroundWidth - abs($val['left']) - $val['width'] : $val['left'];$val['top'] = $val['top'] < 0 ? $backgroundHeight - abs($val['top']) - $val['height'] : $val['top'];//放置图像imagecopymerge($imageRes, $canvas, $val['left'], $val['top'], $val['right'], $val['bottom'], $val['width'], $val['height'], $val['opacity']);//左,上,右,下,宽度,高度,透明度}}//处理文字if (!empty($config['text'])) {foreach ($config['text'] as $key => $val) {$val = array_merge($textDefault, $val);list($R, $G, $B) = explode(',', $val['fontColor']);$fontColor = imagecolorallocate($imageRes, $R, $G, $B);$val['left'] = $val['left'] < 0 ? $backgroundWidth - abs($val['left']) : $val['left'];$val['top'] = $val['top'] < 0 ? $backgroundHeight - abs($val['top']) : $val['top'];imagettftext($imageRes, $val['fontSize'], $val['angle'], $val['left'], $val['top'], $fontColor, $val['fontPath'], $val['text']);}}//生成图片if (!empty($filename)) {ob_clean();$res = imagejpeg($imageRes, $filename, 90); //保存到本地imagedestroy($imageRes);ob_clean();if (!$res) return false;return $filename;} else {ob_clean();imagejpeg($imageRes);     //在浏览器上显示imagedestroy($imageRes);return ob_clean();}
}

海报图片添加二维码图相关推荐

  1. 图片添加二维码水印教程

    本博客介绍一下用jdk awt实现图片加文字水印和图片水印的方法 一.图片文字水印 import java.awt.AlphaComposite; import java.awt.Color; imp ...

  2. Java,图片添加二维码和文字水印,合并为一张图

    在工作中遇到了要把两张图片合并成一张图片的情况,具体场景是用户头像➕二维码➕背景图 本着不重复造轮子的想法,搜索了hutool的utils包,还真让我找到了一个cn.hutool.core.img.I ...

  3. java生成二维码 推广海报添加二维码 文字水印 二维码添加LOGO

    前言 场景: 一.推广海报贴上二维码,用户扫码跳转             二.二维码中间贴logo   eg:这里使用展示第一种场景 一.使用工具 Google开源项目ZXing(二维条码编解码). ...

  4. 动图怎么做二维码?怎么将gif格式图片生成二维码?

    如何将gif动图做成二维码呢?相信很多小伙伴经常会扫描好友制作的二维码图片后,会出现图片.视频等内容,那么静态图片生成二维码的方法相信很多小伙伴都知道,那么gif动图怎么做成二维码来展示呢?下面教大家 ...

  5. Java 生成微信扫描的二维码,跳转到指定网址,图片增加二维码及文字水印

    两种场景: 1.图片海报中加二维码 2.二维码中间加入指定图标 注意点:字体要再设置一下清晰度,要不特别模糊. graph.setRenderingHint(RenderingHints.KEY_TE ...

  6. Python生成带圆角图片的二维码

    示例代码1 #!/usr/bin/python # -*- coding: UTF-8 -*- # author: Carl time:2020/5/15import qrcode from PIL ...

  7. iOS 开发 二维码生成大全(黑白/彩色二维码和带图片的二维码)详解

    前言 扫描二维码使用的是coreImage框架,属于UIKit框架中的体系,多以使用时不用导入coreImage框架 开始之前,让我们谈谈Core Image框架中最重要的几个类: CIContext ...

  8. 二维码中加图片(打印带图片的二维码)

    在二维码中,放入图片,遮挡一部分是被允许的. 二维码在少许损伤的情况下还可以读取出来,图片可以放置的位置如图的黄色区域.(具体可以放多大要看二维码生成时的纠错能力) 二维码的纠错级别: 纠错级别越高, ...

  9. springboot 给图片加二维码

    废话不多说,直接上代码 @PostMapping("/watermarkImages")public String watermarkImages() throws Excepti ...

最新文章

  1. [python]逆水行舟不进则退(1)
  2. 基于cookie的SSO单点登录系统
  3. python3.8什么时候出来,【新版本来临!Python 官网宣布,正式发布Python3.8.0!】- 环球网校...
  4. RocketMQ是怎么存储消息的?
  5. C# 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集...
  6. Android开发工具大全【转】
  7. 随想录(上位机客户端的编写)
  8. 通过HP Loadrunner VuGen来录制安卓的应用
  9. DataTable 排序 查询
  10. 限时删!我亲自整理一套目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)...
  11. 在kettle中实现数据验证和检查
  12. windows环境下面批量修改文件夹名称
  13. 多目标人工秃鹫优化算法(MATLAB源码分享,智能优化算法) 提出了一种多目标版本的人工秃鹫优化算法(AVOA)
  14. minigui3.2 安装教程
  15. android系统构建系统_构建系统简介
  16. 一行代码深度定制你的专属二维码:(amzqr、MyQR制作动态二维码)
  17. C++常用的音频工具库
  18. 安服/渗透测试面试问题总结
  19. JS手机触摸屏的事件用法详解
  20. 解决 输入kubectl get pods -o wide后没有显示ip

热门文章

  1. $.parser.parse()是什么意思
  2. 龙芯处理器7A2000桥片iTOP-3A5000开发板
  3. 测试计划和测试方案的核心内容
  4. Kindle中的文件组织方式-收藏夹
  5. 小程序 数据库 时间_新增NBA2K19数据查询功能 小程序【大P数据库】更新公告
  6. 机器学习 - 语音识别
  7. 从信息化和数字化切入,聊一下建筑行业的数字化转型
  8. Java Servlet
  9. 重要通知 | 2022年互联网地图类软件必须“持证上岗”
  10. 计算机毕业设计(附源码)python养老院管理信息系统