精华内容
下载资源
问答
  • 引用phpqrcode.php生成二维码; public function getcode(){ //默认底图和logo $path = "./images/share/";//路径 if (!is_dir($path)) { load()->func('file'); m...

    引用phpqrcode.php生成二维码;
     

      public function getcode(){
    
    
            //默认底图和logo
    
            $path = "./images/share/";//路径
    
            if (!is_dir($path)) {
    
                load()->func('file');
    
                mkdirs($path);
    
            }
    
            $file = $path . 'code.png';
    
            //生成二维码
            $value = 'http://www.baidu.com/'; //二维码内容   
            $errorCorrectionLevel = 'L';//容错级别   
            $matrixPointSize = 6;//生成图片大小   
            //生成二维码图片   
            QRcode::png($value, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2);   
            $logo = './images/ditu/logo.jpg';//准备好的logo图片   
            $QR = 'qrcode.png';//已经生成的原始二维码图   
    
            if ($logo !== FALSE) {
                $QR = imagecreatefromstring(file_get_contents($QR));   
                $logo = imagecreatefromstring(file_get_contents($logo));   
                $QR_width = imagesx($QR);//二维码图片宽度   
                $QR_height = imagesy($QR);//二维码图片高度   
                $logo_width = imagesx($logo);//logo图片宽度   
                $logo_height = imagesy($logo);//logo图片高度   
                $logo_qr_width = $QR_width / 5;   
                $scale = $logo_width/$logo_qr_width;   
                $logo_qr_height = $logo_height/$scale;   
                $from_width = ($QR_width - $logo_qr_width) / 2;   
                //重新组合图片并调整大小   
                imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,   
                $logo_qr_height, $logo_width, $logo_height);   
            }   
            //输出图片   
            imagepng($QR, $file);
            //生成二维码 end
            $config = array(
              'image'=>array(
                array(
                  'url'=>$file,     //二维码资源
                  'stream'=>0,
                  'left'=>116,
                  'top'=>-216,
                  'right'=>0,
                  'bottom'=>0,
                  'width'=>178,
                  'height'=>178,
                  'opacity'=>100
                )
              )
            );
    
            $file2 = $path . time() . '.png';
    
            //如果要看报什么错,可以先注释调这个header
              $imageDefault = array(
                'left'=>0,
                'top'=>0,
                'right'=>0,
                'bottom'=>0,
                'width'=>100,
                'height'=>100,
                'opacity'=>100
              );
              $textDefault = array(
                'text'=>'',
                'left'=>0,
                'top'=>0,
                'fontSize'=>32,       //字号
                'fontColor'=>'255,255,255', //字体颜色
                'angle'=>0,
              );
              $background = './images/ditu/wx_hb.jpg';//海报最底层得背景
              //背景方法
              $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($file2)){
                $res = imagejpeg ($imageRes,$file2,90); //保存到本地
                imagedestroy($imageRes);
                var_dump($file2);die;
                if(!$res) return false;
                return $file2;
              }else{
                imagejpeg ($imageRes);     //在浏览器上显示
                imagedestroy($imageRes);
              }
            }
    
        }

    https://www.jb51.net/article/136425.htm  原文

    展开全文
  • 文章目录前言一、描述二、逻辑代码三、获取二维码...海报制作的所有博客和一些问题: 文字换行算法详解,传送门: 头像切割成圆形方法详解,传送门: 获取微信二维码详情,传送门: java BufferedImage 转 InputStrea

    前言

    1. 文字换行算法详解,传送门:java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解
    2. 头像切割成圆形方法详解,传送门:java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
    3. 获取微信二维码详情,传送门:java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
    4. java BufferedImage 转 InputStreampng 图片合成到模板(另一个图片)上时,透明部分变成了黑色,传送门:java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
    5. java 整合echarts 画出 折线图,传送门:
    6. Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题,传送门:java制作海报六:Graphics2D的RenderingHints方法参数详解,包括解决文字不清晰,抗锯齿问题
    7. 项目部署到linux下中文不显示,echarts图上的中文也不显示问题,传送门:java制作海报七:java Graphics2D 合成图片 在 linux下中文不显示,echarts图上的中文也不显示问题
    • 本次博客主要是 稍微说一下获取微信二维码详情,这里的代码都在 Main_CreatePosterAndEchart.java

    一、描述

    这里需要获取微信小程序二维码,放到海报的左下角,其实获取二维码的过程,看微信开发文档即可。

    微信开发文档-获取微信二维码

    二、逻辑代码

    // 画 二维码 并改变大小
    // 1. 先 获取二维码(二维码携带一个参数)
    InputStream erWeiMa = getErWeiMa(1);
    // 2. 初始化并的改变大小
    BufferedImage logoImg = PosterUtil.drawInitAndChangeSize(null, erWeiMa, 130, 130);
    // 将二维码保存到本地
    PosterUtil.save(logoImg, "png", "d:\\test.png");
    // 3. 画二维码
    PosterUtil.drawImage(bufferedImage, logoImg, 532, 1108);
    

    三、获取二维码代码

    id 是放到二维码里的参数。返回 输入流。

        /**
         * @return java.io.InputStream
         * @Author fengfanli
         * @Description //TODO 从微信平台 获取小程序二维码
         * @Date 16:53 2021/4/1
         * @Param []
         **/
        public static InputStream getErWeiMa(Integer id) {
            // 获取二维码:1、先获取access_token 2、在获取 二维码
            String appId = PropertiesFileUtil.getInstance("app").get("wx.app.ip");
            String appSecret = PropertiesFileUtil.getInstance("app").get("wx.app.secret");
            System.out.println("appId==" + appId + ";appSecret==" + appSecret);
            // 获取 access_token
            String getUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret;
            System.out.println("getUrl==" + getUrl);
            String str = HttpUtil.sendGet(getUrl);
            JSONObject json = (JSONObject) JSONObject.parse(str);
            String access_token = (String) json.get("access_token");
            System.out.println("access_token:" + access_token);
            // 获取 二维码图片流
            String postURL = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + access_token;
            System.out.println("postURL==" + postURL);
            JSONObject jsonObject = new JSONObject();
            // 这里往二维码里放入前端传过来的 id,前端获取之后,根据id 去获取详情
            jsonObject.put("scene", id);
            String scene = JSONObject.toJSONString(jsonObject);
            InputStream inputStream = null;
            inputStream = HttpUtil.sendPostForErWeiMa(postURL, scene);
            return inputStream;
        }
    

    四、将二维码画(合成)到模板上

    1. 描述

    这个方法在PosterUtil上
    先初始化,在改变大小,

    2. 初始化代码和改变大小 代码

        /**
         * @return java.awt.image.BufferedImage
         * @Author fengfanli
         * @Description //TODO 初始化模板并改变宽度和高度
         * @Date 9:56 2021/3/30
         * @Param [path, width, height]
         **/
        public static BufferedImage drawInitAndChangeSize(String path, InputStream inputStream, int width, int height) throws Exception {
            BufferedImage canvas = null;
            if (path != null) {
                URL url = new URL(path);
                canvas = ImageIO.read(url);
            }
            if (inputStream != null) {
                canvas = ImageIO.read(inputStream);
            }
            canvas = changeSize(canvas, width, height);
            return canvas;
        }
    
    
        /**
         * @return java.awt.image.BufferedImage
         * @Author fengfanli
         * @Description // TODO 改变宽度和高度:先画一个空白的图,再将需要改变大小的图 画上去,再限制大小
         * @Date 9:56 2021/3/30
         * @Param [originalImage, width, height]
         **/
        public static BufferedImage changeSize(BufferedImage originalImage, int width, int height) {
            // 抗锯齿
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);  // originalImage.getType() 改为 BufferedImage.TYPE_INT_RGB
            Graphics2D g2d = image.createGraphics();
            image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.OPAQUE);
            g2d = image.createGraphics();
            g2d.drawImage(originalImage, 0, 0, width, height, null);
            g2d.dispose();
            return image;
        }
    

    3. 合成图 代码

        /**
         * @return java.awt.image.BufferedImage
         * @Author fengfanli
         * @Description //TODO 在背景模板上放置 image
         * @Date 9:57 2021/3/30
         * @Param [canvas, logo, logoX, logoY]
         **/
        public static void drawImage(BufferedImage canvas, BufferedImage logo, int logoX, int logoY) {
            Graphics2D g2d = canvas.createGraphics();
            //g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1));
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g2d.drawImage(logo, logoX, logoY, null);
            g2d.dispose();
        }
    
    展开全文
  • 有时候我们看到一张海报很漂亮,可惜的是上面有别人的二维码。想换成自己的微信/抖音二维码,那么该怎么做呢? 这个可以制作的工具是非常的多,P图、美图 都有。这个都是需要一点点的基本功。如果是小白的话推荐 ...

    通过利用二维码图片进行产品的推广分享已经广泛的应用在各行各业也,用户可以将自己的微信/抖音二维码分享出去,让其他的小伙伴扫码添加自己为好友。方便我们更好的推广自己的产品!

    有时候我们看到一张海报很漂亮,可惜的是上面有别人的二维码。想换成自己的微信/抖音二维码,那么该怎么做呢?

     

    这个可以制作的工具是非常的多,P图、美图 都有。这个都是需要一点点的基本功。如果是小白的话推荐 使用 码文书 二维码修改工具 简单快速!

     

    工具地址:

    码文书:http://maiyurl.cn/maws

     

    1、打开我们的二维码工具地址;

    2、点击立即制作按钮;

    3、然后我们点击上传按钮,上传我们需要合并的微信二维码:

    4、最后我们检查一下我们上传好的二维码。点击‘立即制作’!就可以了

    案例展示

    原图

    修改后

     

    展开全文
  • 实现原理: 利用微信小程序canvas API把文字和图片进行合成,用wx.canvasToTempFilePath()返回图片地址再保存至相册。
  • 马上就要到六一儿童节了,与六一儿童有关的图片海报该怎么去制作呢?对于不懂的Photoshop的小白来说,要制作生成一张漂亮的六一儿童节相关的艺术海报就很麻烦,如果有在线的艺术海报生成平台那就可以了。我们可以...

    马上就要到六一儿童节了,与六一儿童有关的图片海报该怎么去制作呢?对于不懂的Photoshop的小白来说,要制作生成一张漂亮的六一儿童节相关的艺术海报就很麻烦,如果有在线的艺术海报生成平台那就可以了。我们可以直接百度搜【12tool】进入12tool艺术二维码生成平台。

    进入海报生成平台,点击导航栏【创意二维码】选择海报-》选择【儿童节】分类。



    然后点击【开始制作】按钮,根据提示一步一步做就可以了。现在就来制作儿童节艺术海报吧儿童节艺术海报制作平台请点击

    展开全文
  • 微信公众号引导关注海报自动生成裂变海报发送关键词自动生成海报微信服务号特有功能渠道二维码,微号帮平台制作成为海报二维码功能,数据统计报表,消息提醒设置;通过某个粉丝生成海报二维码,别人通过这个海报...
  • 本公司现在有很多车牌名称,和车牌对应的车辆信息的链接,现在需求制作海报海报中包括车辆信息链接的二维码,车牌名称。海报的格式如下图所示,海报背景固定,车辆信息链接二维码和车牌名称每一张不一样,由于数据...
  • 而标准二维码形式单一、对比浓重,常常在一张海报中「拉低审美」。 缘起 二维码是什么? 从大学开始,大范围地接触生成艺术——利用计算机算法制作的视听艺术作品,有那么一刻,我心中也会想,二维码不也可以是一...
  • H5海报制作实践

    2019-03-07 19:22:00
    引言 年后一直处于秣马厉兵的状态,上周...目前活动还是在线状态,这里是最后生成海报的效果,扫描二维码就可以进入页面。 实现方案 起初实现的方案是展示的时候直接使用canvas,计算手机屏幕大小,让canvas充满...
  • mosowe-canvas-image:一个可以制作多用途图片的插件(海报二维码,分享图) v1.2.0: 添加透明度globalAlpha,值0-1; 修改只能画一个圆形图片问题,画圆形图片时耗时较多,因为额外增加了一个canvas处理圆形图片...
  • 已经经过汉化,能够在PS制作海报等图片时快速插入包含指定信息的二维码,使用方便快捷,生成的二维码是矢量的,支持无限放大。 软件说明二维码(QRCode)的应用已经变的越来越广泛,小至名片、门票,大至海报、网站...
  • Photoshop二维码插件

    2016-01-13 17:39:28
    二维码(QRCode)的应用已经变的越来越广泛,小至名片、门票,大至海报、网站宣传等都能看见二维码的身影。二维码制作软件也是多种多样,有专门制作二维码的软件,也有外挂于其他设计软件的二维码插件(例如本人十分...
  • Photoshop视觉设计2-1-1 创建与编辑选区电子商务网站简介品牌正品特买店商品主要包括品牌服装男女装童装鞋包食品家居用品等各类产品产品都是线下实体店专柜正品每天商城会实时更新各类品牌限时抢购海报设计思路基础...
  • 出版业的二维码应用

    2021-03-09 13:53:39
    二维码因其便于制作和方便的功能深受各类商家的喜爱,它的小巧外观使得它能很自然地与各种产品结合,进而给产品带来流量和点击,如同产品的“身份证”。 制造行业通过与在线二维码生成器公司合作,为产品批量生成...
  • 微信公众号获取临时二维码

    千次阅读 2018-11-16 14:41:41
    我们做微信公众号开发时为了推广,可能需要服务端去生成公众号的临时二维码,然后再进行一定的图片合成操作,制作一张漂亮的推广海报。别人扫一下二维码进入关注公众号界面,点击关注我们可以拿到二维码里面的信息...
  • 小程序制作海报

    2020-09-10 13:38:33
    小程序制作海报的话,不得不提的是canvas的操作,相信不少人都做过关于分享图片,然后带一个自己的二维码之类的海报,做起来感觉还是相当简单的,但是如果想做一款自由度高的并且百分百还原的海报小程序并不是想象中...
  • 其中灵活运用防疫二维码,驰援防抗疫情宣传,制作了防疫宣传海报、疫情防护手册、社区疫情排查登记表、二维码条幅标语等一系列二维码广告宣传物料。 一、防疫宣传二维码有哪些优势? 在这些抗疫广告物料中,二维码...
  • 前端实现H5制作海报

    千次阅读 2019-07-20 08:59:50
    海报模版与自己上传的照片进行合成并且贴上二维码,生成可长按保存的海报海报H5的基本功能: 接入微信SDK 上传照片、拍照 裁剪图片 将海报模板、二维码、上传的照片合成海报 长按保存图片 方案选择 方案一...
  • 但随着二维码的应用越来越广泛,商户和企业关于二维码上面的“小心机”却暗藏竞争,各类商户发挥想象,制作出了很多有创意的二维码。 1.餐厅二维码 图一的二维码中有很多食物元素,煎蛋构成三个定位点,其余位点都由...
  • h5海报制作 基本介绍 最终实现的需求是: 将海报模版与自己上传的照片进行合成并且贴上二维码,生成可长按保存的海报。 海报H5的基本功能: 接入微信SDK 上传照片、拍照 裁剪图片 将海报模板、二维码、上传的照片...
  • JAVA实现二维码生成加背景图

    千次阅读 2019-02-14 10:14:27
    应用场景:比如制作海报、宣传图时需要添加扫码关注的二维码 先上效果图 ( ≧▽≦ ) POM.XML <!-- 二维码生成 --> <!-- https://mvnrepository.com/artifact/com.google.zxing/core --> &...
  • ,今天分享一下如何像我一样制作一个海报,替换海报上的二维码。 地址:https://blog.csdn.net/qq_36441393/article/details/111411608 当时这个想法是这样来的:业主群里每天早上都有物业人员分享一副海报,我...
  • vue批量制作海报,导出为图片,下载成压缩包需求实现方式代码实现采坑 需求 客户选择海报模板 在模板的固定位置,添加不同的二维码二维码由服务端生成,数量不固定,二维码内容不固定) 将生成的所有海报,打包,...
  • 生成海报是小程序一项寻常普遍的低成本推广方式,在小程序中通过引导用户生成带有小程序二维码海报发上票圈,来吸引更多的流量。 2. 需求分析 在与朋友圈类似的 带有文字描述 和 最多带有9张图片的 列表中,...
  • oss 图片水印处理接口文档 ... 链接生成二维码图片 String url = myService.queryProductWechatUrl("empty", webUse...
  • 第一次使用html2canvas,参考了别人的案例,解决了在移动端生成的截图模糊问题,canvas动态二维码截图失败的问题 海报效果图 <!-- 生成的海报 --> <div id="capture"> <div class="box" id=...
  • 注意:昵称,头像,二维码海报底图背景都可以从接口获取动态绘制, 接口获取的图片src必须是https(开发版本可以用http),然后需要用wx.downLoad下载,然后使用临时地址来生成海报,否则会报错。 wx.downLoad({ ...
  • 由于我们无法将小程序直接分享到朋友圈,但分享到朋友圈的需求又很多,业界目前的做法是利用小程序的 Canvas 功能生成一张带有二维码的图片,然后引导用户下载图片到本地后再分享到朋友圈。而小程序 Canvas 功能是很...
  • H5上传图片并使用canvas制作海报

    万次阅读 热门讨论 2017-09-30 15:08:37
    马上就要“十一”国庆节了,又恰逢公司已经三周岁了,所以市场部和产品共同策划了一个“正青春,共成长”的主题代言活动,准备在国庆节以及中秋节期间让公司员工和用户为...3、将用户输入的代言地点及活动二维码生成一
  • 海报制作的所有博客和一些问题: 文字换行算法详解,传送门: 头像切割成圆形方法详解,传送门: 获取微信二维码详情,传送门: java BufferedImage 转 InputStream,传送门: png 图片合成到模板(另一个图片)上...

空空如也

空空如也

1 2 3 4 5
收藏数 97
精华内容 38
关键字:

二维码海报制作