纯Java实现微信朋友圈分享图

1.实现分享图的效果

2.开发环境

2.1 JDK

* oracle‘s jdk 1.8以上

2.2 字体

* 若选择了微软雅黑字体又是代码部署到Linux,则需要安装微软雅黑字体,字体安装方式自行google

3. 加载背景

3.1 加载背景图

这是使用白色框底来作背景图1.
java code //这里从项目resources加载背景图,读文件到输入流,代码作了简列 InputStream background = null BufferedImage zoomPicture = ImageIO.read(background);

4. 圆头像的实现

4.1 头像裁剪

头像裁剪成半径

//头像半径
public static final int PROFILE_RADIUS = 80;
// 2. 头像裁剪成圆形
BufferedImage roundedImage = SharedImageUtils.createRoundedImage(new URL(userProfileUrl).openStream(),
                             SharedImageUtils.PROFILE_RADIUS);

4.2 背景图上绘画头像

绘画位置

/* 要放置的头像y坐标 */
 public static final int PROFILE_Y = 1056;
/* 要放置的头像X坐标 */
 public static final int PROFILE_X = 90; 
//頭像旁邊附帶文字(ps:字体是微软雅黑,linux不具备有,需要安装,)
BufferedImage profileImage = SharedImageUtils.mergePicture(zoomPicture,
  roundedImage,
  nickName + " 为你推荐网批货源",
  SharedImageUtils.PROFILE_X,
  SharedImageUtils.PROFILE_Y,
  SharedImageUtils.PROFILE_RADIUS,
  SharedImageUtils.PROFILE_RADIUS); 

5. 商品图案的显示

5.1 绘画的位置和长宽

public static final int COPYWRITER_X = 150;
/* 商店图案Y位置 */
public static final int SHOP_PIC_Y = 70;
/*商店图案位置*/
public static final int SHOP_PIC_X = 93;
/* 商店图案寬度 */
public static final int SHOP_PIC_WIDTH = 900;
/* 商店图案長度 */
public static final int SHOP_PIC_LENGTH = 950;

5.2 绘画图案

shopImage = SharedImageUtils.mergePicture(profileImage, shopImage, null,
  SharedImageUtils.SHOP_PIC_X,
  SharedImageUtils.SHOP_PIC_Y,
  SharedImageUtils.SHOP_PIC_WIDTH, SharedImageUtils.SHOP_PIC_LENGTH);

6. 文案的显示

6.1 文案绘画的位置与字体大小

BufferedImage textImage = SharedImageUtils.drawTextInImage(shopImage, "档口: " + shopName, 150, 1200);
//添加文案
BufferedImage mergeImage = SharedImageUtils.drawTextInImage(textImage, "地址: " + shopAddr, 150, 1280);  

7. 二维码的显示

7.1 二维码的大小与位置

/* 要放置的二维码寬度 */
public static final int QRCODE_WIDTH = 230;
/* 要放置的二维码長度 */
public static final int QRCODE_LENGTH = 230;
/* 要放置的二维码Y位置 往下为大值,往上为小值 */
public static final int QRCODE_Y = 1070;
/*要放置的二维码X位置 往下为大值,往上为小值 */
public static final int QRCODE_X = 740;

7.2 二维码的绘画

BufferedImage shopQrBuffer = ImageIO.read(new URL(shopQrUrl));
mergeImage = SharedImageUtils.mergeQrcode(mergeImage,
  shopQrBuffer,
  "扫描或长按小程序码",
  SharedImageUtils.QRCODE_X,
  SharedImageUtils.QRCODE_Y,
  SharedImageUtils.QRCODE_WIDTH,
  SharedImageUtils.QRCODE_LENGTH);

8. 最终的分享图

// 5. 生成分享图
ImageIO.write(mergeImage, "jpg", response.getOutputStream());

9. 源码


  1. [link](https://picasaweb.google.com/106437634114917759264/6630213808569212145#6630213806186676098 "background.jpg)
    这是使用的背景图是白色框底

纯Java实现微信朋友圈分享图的更多相关文章

  1. ionic 实现微信朋友圈分享的完整开发流程

    最近开始要着手负责开发ionic的项目了,一直很好奇想实现一个微信朋友圈分享的功能,所以我就网上找了找文章来练手实现,果不其然,找到了几篇,但是发现它们的流程都不太详细,清楚,直接,还有不少坑. 今天 ...

  2. apiCloud 三方分享,微信好友分享,微信朋友圈分享,QQ分享,微博分享

    首先查看我的这篇有关三方登录的博客,地址是http://www.cnblogs.com/gqx-html/p/8303567.html,配置完三方数据后可以从上一篇文章中的链接跳转到各个登录查看api ...

  3. 微信分享缩略图,如何增加微信朋友圈分享链接的小图片? facebook、google+、twitter等分享的标签

    微信分享缩略图 如何增加微信朋友圈分享链接的小图片?在网页的头部<head>标签内加上以下代码,图片路径自行修改.<head><div id='wx_pic' style ...

  4. 实现手机网页调起原生微信朋友圈分享的工具nativeShare.js

    http://www.liaoxiansheng.cn/?p=294 我们知道现在我们无法直接通过js直接跳转到微信和QQ等软件进行分享,但是现在像UC浏览器和QQ浏览器这样的主流浏览器自带一个分享工 ...

  5. 微信朋友圈分享页面(JS-SDK 1.0)

    微信更新sdk后大量分享朋友圈代码失效,标题 缩略图 描述无法自定义 新版SDK分享文章步骤 1.绑定域名 (方法参考 http://mp.weixin.qq.com/wiki/7/aaa137b55 ...

  6. JN_0001:在微信朋友圈分享时长大于10s的视频

    1,先在聊天窗口里发送视频. 2,长按视频点击”收藏“. 3,进入微信收藏管理页面,播放视频. 4,点击右上角三点按钮,选择“转存为笔记”. 5,于是在收藏页面中会生成一个新的收藏笔记链接,打开链接再 ...

  7. 微信朋友圈分享js代码最新2015年无错版

    最近微信对分享做了进一步规范,导致很多分享都不起作用了,今天跟大家分享,2015年最新修无错的! 以下是主要微信分享页面代码:(其中红色部分主要懒友自己填写自己哈.) <?php require ...

  8. React Native微信分享 朋友圈分享 Android/iOS 通用

    超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用   2016/06/16 |  React Native技术文章 |  Sky丶清|  暂无评论 |  1 ...

  9. iOS - 社会化分享-微信分享,朋友圈分享

    我仅仅做了文字和图片分享功能 1. TARGETS - Info - URL Types identifier -> weixin URL Schemes ->  应用id 2.在AppD ...

随机推荐

  1. WebApi用户登录验证及服务器端用户状态存取

    最近项目需要给手机端提供数据,采用WebApi的方式,之前的权限验证设计不是很好,这次采用的是Basic基础认证. 1.常见的认证方式 我们知道,asp.net的认证机制有很多种.对于WebApi也不 ...

  2. 设计模式之创建类模式PK

    创建类模式包括: 工厂方法模式 建造者模式 抽象工厂模式 单例模式 原型模式 创建类模式能够提供对象的创建和管理职责. 其中单例模式和原型模式非常容易理解, 单例模式是要保持在内存中只有一个对象,原型 ...

  3. 学习笔记—CSS基础

    概念 CSS 指层叠样式表(Cascading Style Sheets), 是一种标记语言,属于浏览器解释型语言,可以直接由浏览器执行,不需要编译. HTML只负责网页的内容,标签尽量只负责语意不负 ...

  4. 华为模拟器eNSP安装(最新)网络工程师必备!

    电脑杂七杂八的东西太多了,于是今天把电脑重装系统了,正好重新安装一下华为模拟器eNSP,这个教程应该是最新的,因为eNSP版本更新以及华为官网页面的变化,有的小伙伴安装eNSP都下载不到安装包,接下来 ...

  5. Apache Flink 介绍

    原文地址:https://mp.weixin.qq.com/s?__biz=MzU2Njg5Nzk0NQ==&mid=2247483660&idx=1&sn=ecf01cfc8 ...

  6. Maven项目pom文件设置JDK版本

    maven项目创建之后有时候默认设定了java的低版本,每次导入项目或者更新maven的时候可能或出现一些报错,在pom.xml设定版本免除这个问题 <build> <finalNa ...

  7. Web地图呈现原理

    地图投影 对于接触互联网地图的同学来说,最开始接触的恐怕就是坐标转换的过程了.由于地球是个近似椭球的形状,有各种各样的椭球模型来模拟地球,最著名的也就是GPS系统使用的WGS84椭球了.但是这些椭球体 ...

  8. vue2.0 配置环境总结(都是泪啊)

    最近有点空闲时间,终于把一直想学的vue提上了日程,以下是收集的一些帮助入门的链接 1:https://vuefe.cn/v2/guide/ vue2.0中文官网 2:https://router.v ...

  9. 你真的了解webview么?

    你真的了解webview么? 写在前面: Webview是我们前端开发从PC端演进到移动端的一个重要载体,现在大家每天使用的App,webview都发挥着它的重要性.接下来让我们从webview看世界 ...

  10. java配置环境及安装

    1.安装JDK开发环境 首先登陆https://www.oracle.com 第一步:Products ---- Java ---- Download java(JDK) for Developers ...