纯Java实现微信朋友圈分享图
纯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. 源码
[link](https://picasaweb.google.com/106437634114917759264/6630213808569212145#6630213806186676098 "background.jpg)
这是使用的背景图是白色框底↩
纯Java实现微信朋友圈分享图的更多相关文章
- ionic 实现微信朋友圈分享的完整开发流程
最近开始要着手负责开发ionic的项目了,一直很好奇想实现一个微信朋友圈分享的功能,所以我就网上找了找文章来练手实现,果不其然,找到了几篇,但是发现它们的流程都不太详细,清楚,直接,还有不少坑. 今天 ...
- apiCloud 三方分享,微信好友分享,微信朋友圈分享,QQ分享,微博分享
首先查看我的这篇有关三方登录的博客,地址是http://www.cnblogs.com/gqx-html/p/8303567.html,配置完三方数据后可以从上一篇文章中的链接跳转到各个登录查看api ...
- 微信分享缩略图,如何增加微信朋友圈分享链接的小图片? facebook、google+、twitter等分享的标签
微信分享缩略图 如何增加微信朋友圈分享链接的小图片?在网页的头部<head>标签内加上以下代码,图片路径自行修改.<head><div id='wx_pic' style ...
- 实现手机网页调起原生微信朋友圈分享的工具nativeShare.js
http://www.liaoxiansheng.cn/?p=294 我们知道现在我们无法直接通过js直接跳转到微信和QQ等软件进行分享,但是现在像UC浏览器和QQ浏览器这样的主流浏览器自带一个分享工 ...
- 微信朋友圈分享页面(JS-SDK 1.0)
微信更新sdk后大量分享朋友圈代码失效,标题 缩略图 描述无法自定义 新版SDK分享文章步骤 1.绑定域名 (方法参考 http://mp.weixin.qq.com/wiki/7/aaa137b55 ...
- JN_0001:在微信朋友圈分享时长大于10s的视频
1,先在聊天窗口里发送视频. 2,长按视频点击”收藏“. 3,进入微信收藏管理页面,播放视频. 4,点击右上角三点按钮,选择“转存为笔记”. 5,于是在收藏页面中会生成一个新的收藏笔记链接,打开链接再 ...
- 微信朋友圈分享js代码最新2015年无错版
最近微信对分享做了进一步规范,导致很多分享都不起作用了,今天跟大家分享,2015年最新修无错的! 以下是主要微信分享页面代码:(其中红色部分主要懒友自己填写自己哈.) <?php require ...
- React Native微信分享 朋友圈分享 Android/iOS 通用
超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用 2016/06/16 | React Native技术文章 | Sky丶清| 暂无评论 | 1 ...
- iOS - 社会化分享-微信分享,朋友圈分享
我仅仅做了文字和图片分享功能 1. TARGETS - Info - URL Types identifier -> weixin URL Schemes -> 应用id 2.在AppD ...
随机推荐
- 2018年如何快速学Java
前言 只有光头才能变强 提前预警:本文适合Java新手阅读(老手可在评论区给下建议),希望大家看完能有所收获. 一.为什么我要写下这篇文章 1.1直接缘由: 在今天(2018年11月4日)有个同学给我 ...
- 简述private,protected,public,internal修饰符的访问权限
private:私有成员,在类的内部才可以访问 protected:保护成员,在类的内部和继承类中可以访问 public:公共成员,完全公开,没有访问限制 internal:当前程序集内可以访问
- Rest_framework Router 路由器(含SimplyRouter源码浅解)
目录 Rest_framework Router 路由器 ViewSet结合Router,自动生成url. 将ViewSet注册到Router中,需要三个要素: 关于路由规则,细分有四类: rest_ ...
- flex布局基本语法
注 : 本文章按照菜鸟教程 Flex布局语法教程为原型稍加修改,以方便自己学习. 菜鸟教程地址:http://www.runoob.com/w3cnote/flex-grammar.html 2009 ...
- hdfs一直处于safemode模式
目前来看,导致hdfs一直处于safemode模式最直接的原因是已成功复制的块的比例没有达到默认值,块的损坏也会造成一直处于安全模式. 1)文件系统中有损坏的文件,使用fsck命令来查看 hadoop ...
- Python算法练习--把搜索树转成双向链表
本文目前分享的题目都是来自于July的分享,然后把具体算法实现.搜索树转双向链表主要的实现逻辑是在中序遍历时,调整节点的左右子树:因为中序遍历是递归调用,所以在调整时一定要注意调整的位置,如果写错了, ...
- git命令设置
初始化为git项目: cd .../project //切换到项目目录下 git init //把project初始化为git项目 git remote add origin https://gi ...
- 一句话,讲清楚java泛型的本质(非类型擦除)
背景 昨天,在逛论坛时遇到个这么个问题,上代码: public class GenericTest { //方法一 public static <T extends Comparable< ...
- ubuntu文件系统分区调整(解决目录空间不足、分配不均问题)
1. 安装 tuxboot (ubuntu下烧写工具) sudo apt-add-repository ppa:thomas.tsai/ubuntu-tuxboot sudo apt-get upda ...
- LogUtil【实现自由的控制日志的打印的封装类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 主要用于控制项目开发和上线阶段日志的打印. 效果图 暂不需要. 代码分析 在LogUtil类中声明代表不同日志级别的常量值(VERB ...