前言:互联网本质还是流量的生意,谁收割的流量最多,谁便是下一个赢家。“自古流量出社交”也就可以解释为什么每个APP都有一个社交梦,每个PM都有一颗想做社交的心。无论是B端产品还是C端产品,能够讲好一个“社交故事”,就很有可能给资本市场带来无穷的想象空间。公司一直有分享合成图片的场景,之前自己写起来比较费劲,最近找了一个比较好用的工具分享给大家码云地址,感谢opensourcechen的分享。
话不多说,直接上例子看效果
public void testCombineTopicImage() throws Exception {
String qrCodeUrl = "https://xxxx/images/img10/v3/common/icon/newErWeiCode.jpg";
String topicTitle = "# 我爱我家";
String topicContent = "互联网本质还是流量的生意,谁收割的流量最多,谁便是下一个赢家。";
String topicImage = "http://xxxx/2020/10/WechatIMG1362.jpeg";
//背景图
String bgImage = "https://xxxx/combine_image/funny_topic/resource/bg_3x4.png";
ImageCombiner imageCombiner = new ImageCombiner(bgImage, OutputFormat.JPG);
//话题图
imageCombiner.addImageElement(topicImage, 0, 140, 800, 1200, ZoomMode.WidthHeight)
.setRoundCorner(500).setCenter(true);
//话题标题
imageCombiner.addTextElement(topicTitle, 55, 150, 1410);
//话题内容
imageCombiner.addTextElement(topicContent, 40, 150, 1480)
.setAutoBreakLine(837, 3, 60);
//水印
String waterMark = "https://xxxx/detail/case/waterMark/newlogo_58_58.png";
imageCombiner.addImageElement(waterMark, 1040, 1930);
//二维码
imageCombiner.addImageElement(qrCodeUrl, 138, 1707, 186, 186, ZoomMode.WidthHeight);
//合成图片
imageCombiner.combine();
//保存
imageCombiner.save("/data/logs/aaaaaaaaa1.jpg");
}
效果图:
其他具体ImageElement
和TextElement
对象支持的特性如下表:
元素类型 | 特性 | 相关方法 |
---|---|---|
ImageElement | 图片 | setImage() ,setImgUrl() |
ImageElement | 位置 | setX() ,setY() |
ImageElement | 缩放 | setWidth() ,setHeight() ,ZoomMode |
ImageElement | 圆角 | setRoundCorner() |
ImageElement | 居中绘制 | setCenter() |
ImageElement | 透明度 | setAlpha() |
----------------- | ||
TextElement | 文本 | setText() ,setY() |
TextElement | 位置 | setX() ,setY() |
TextElement | 居中绘制 | setCenter() |
TextElement | 透明度 | setAlpha() |
TextElement | 颜色 | setColor() |
TextElement | 字体 | setFontName() |
TextElement | 字号 | setFontName() |
TextElement | 删除线 | setStrikeThrough() |
TextElement | 自动换行 | setAutoBreakLine() |