小程序生成商品分享二维码海报解决方案和实现方式JAVA
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了小程序生成商品分享二维码海报解决方案和实现方式JAVA,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3732字,纯文字阅读大概需要6分钟。
内容图文
![小程序生成商品分享二维码海报解决方案和实现方式JAVA](/upload/InfoBanner/zyjiaocheng/647/ff6aaaf8c02d4b1583095dba3e8016d0.jpg)
使用技术: Graphics , 七牛云 , 微信sdk(github上非常出名的wxjava,地址https://github.com/Wechat-Group/WxJava/)
直接上干货代码,每一步都有详细注释, TODO 的地址修改为自己的信息,一个合格的程序员懂得灵活运用代码. 如果想实现画入文字并且更具 \n 自动换行,可根据代码自行优化(已经实现自动换行).
@Test public void share() throws Exception { //创建图片 BufferedImage img = new BufferedImage(750, 1334, BufferedImage.TYPE_INT_RGB); //开启画图 Graphics g = img.getGraphics(); //背景 -- 读取互联网图片 BufferedImage back = ImageIO.read(new URL("填写海报的背景图片链接")); g.drawImage(back.getScaledInstance(750, 1334, Image.SCALE_DEFAULT), 0, 0, null); // 绘制缩小后的图 //商品 banner图 //读取互联网图片 BufferedImage priductUrl = ImageIO.read(new URL("填写自己的banner图,线上链接")); //TODO g.drawImage(priductUrl.getScaledInstance(690,516,Image.SCALE_DEFAULT),29,61,null); //文案标题 g.setFont(new Font("微软雅黑", Font.BOLD, 34)); g.setColor(new Color(29,29,29)); //绘制文字 g.drawString("填写文案标题", 31, 638);//TODO //文案 g.setFont(new Font("微软雅黑", Font.PLAIN, 30)); g.setColor(new Color(47,47,47)); int fontlen = getWatermarkLength("填写文内容", g);//TODO //文字长度相对于图片宽度应该有多少行 int line = fontlen / (back.getWidth() - 90); //高度 int y = back.getHeight() - (line + 1) * 30 - 500; //文字叠加,自动换行叠加 int tempX = 32; int tempY = y; //单字符长度 int tempCharLen = 0; //单行字符总长度临时计算 int tempLineLen = 0; StringBuffer sb =new StringBuffer(); for(int i=0; i < "填写文内容".length(); i++) {//TODO char tempChar = "填写文内容".charAt(i);//TODO tempCharLen = getCharLen(tempChar, g); tempLineLen += tempCharLen; if(tempLineLen >= (back.getWidth()-90)) { //长度已经满一行,进行文字叠加 g.drawString(sb.toString(), tempX, tempY + 50); //清空内容,重新追加 sb.delete(0, sb.length()); //每行文字间距50 tempY += 50; tempLineLen =0; } //追加字符 sb.append(tempChar); } //最后叠加余下的文字 g.drawString(sb.toString(), tempX, tempY + 50); //价格背景 //读取互联网图片 BufferedImage bground = ImageIO.read(new URL("填写自己的价格背景图,七牛图片链接"));//TODO // 绘制缩小后的图 g.drawImage(bground.getScaledInstance(160, 40, Image.SCALE_DEFAULT), 30, 1053, null); //限时促销价 g.setFont(new Font("微软雅黑", Font.PLAIN, 24)); g.setColor(new Color(255,255,255)); g.drawString("限时促销价", 50, 1080); //价格 g.setFont(new Font("微软雅黑", Font.PLAIN, 50)); g.setColor(new Color(249,64,64)); g.drawString("¥" + "填写商品的价格", 29, 1162);//TODO //原价 g.setFont(new Font("微软雅黑", Font.PLAIN, 36)); g.setColor(new Color(171,171,171)); String price = "¥" + "填写商品的原价";//TODO g.drawString(price, 260, 1160); g.drawLine(250,1148,260+150,1148); //商品名称 g.setFont(new Font("微软雅黑", Font.PLAIN, 32)); g.setColor(new Color(29,29,29)); g.drawString("填写商品名称", 30, 1229);//TODO //生成二维码返回链接 String url = "";//TODO //读取互联网图片 BufferedImage qrCode = ImageIO.read(new URL(url)); // 绘制缩小后的图 g.drawImage(qrCode.getScaledInstance(174, 174, Image.SCALE_DEFAULT), 536, 1057, null); //二维码字体 g.setFont(new Font("微软雅黑", Font.PLAIN, 25)); g.setColor(new Color(171,171,171)); //绘制文字 g.drawString("扫描或长按小程序码", 515, 1260); g.dispose(); //保存到本地 生成文件名字 String iconKey = UUID.randomUUID().toString() +".png"; //TODO //先将画好的海报写到本地 String picUrl = "填写自己电脑的路径" + iconKey; // TODO File file = new File(picUrl); ImageIO.write(img, "jpg",file); //再将file上传至七牛返回链接存入数据库 //end // TODO } /** * 获取水印文字总长度 *@paramwaterMarkContent水印的文字 *@paramg *@return水印文字总长度 */ public int getWatermarkLength(String waterMarkContent, Graphics g) { return g.getFontMetrics(g.getFont()).charsWidth(waterMarkContent.toCharArray(),0, waterMarkContent.length()); } public int getCharLen(char c, Graphics g) { return g.getFontMetrics(g.getFont()).charWidth(c); }
内容总结
以上是互联网集市为您收集整理的小程序生成商品分享二维码海报解决方案和实现方式JAVA全部内容,希望文章能够帮你解决小程序生成商品分享二维码海报解决方案和实现方式JAVA所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。