前言

现在华为Image Kit图文排版功能为用户提供了9种智能排版样式,排版方式分为内容等宽和内容不等宽两种布局。用户可根据自己的图片风格选择合适的排版。

应用场景

在我们的电子杂志排版中,有很多素材是需要添加文字的,这个时候为了提高工作效率,image kit的排版方式就可以满足,可以快速排版成型。这也对用户看图增添文艺性。

开发实战

本次的开发实战是实现对图文排版的实现。

开发准备

需要开发者提供图片和相关参数,得到相应的返回值。

步骤1:导入图文智能排版服务包。

import   com.huawei.hms.image.vision.bean.ImageLayoutInfo ;

import   com.huawei.hms.image.vision.*;

步骤2:获取图文智能排版服务实例。

// 获取ImageVisionImpl 对象

ImageVisionImpl imageVisionAPI   = ImageVision.getInstance(this);

步骤3:服务初始化,与滤镜服务一致,可参考开发步骤中的相关描述。

步骤4:构建参数对象。

requestJson字段信息:

图文智能排版的taskJson字段信息:

authJson映射表:请参见authJson字段定义。

图文智能排版服务requestJson示例:

{

"requestId":"requestId",

"taskJson":{"title":"轻奢新生代","description":"远离城市的喧嚣","copyRight":"华为杂志锁屏","isNeedMask":false,"anchor":"查看详情","styleList":["info1"]},  "authJson":{"projectId":"projectIdTest","appId":"appIdTest","authApiKey":"authApiKeyTest","clientSecret":"CSecretTest","clientId":"CIdTest","token":"tokenTest"}

}

步骤5:图文智能排版服务获取结果。

开发者在调用图文智能排版接口时,需要输入待处理图片Bitmap并选择样式和需要添加的文字等(构建参数)。图文智能排版服务需要联网,如不联网,则默认反回info3样式。图文智能排版服务会返回ImageLayoutInfo封装类,根据封装类的参数进行view绘制(可以参考示例代码绘制方式)。注意因为接口涉及网络请求,需要开启子线程去调用接口。

// 获取ImageLayoutInfo返回值

new Thread(new Runnable() {

@Override

public void run() {

ImageLayoutInfo imageLayoutInfo = imageVisionAPI.analyzeImageLayout(requestJson, imageBitmap);

}

}).start();

ImageLayoutInfo 返回值:

response字段:

步骤6:停止服务。

当不再需要图文智能排版效果时,调用该接口停止服务,stopCode为0时,执行成功。

if (null != imageVisionAPI) {

int stopCode = imageVisionAPI.stop();

}

Demo展示

Github源码

作者:胡椒

java中图片排版,教你轻松集成华为Image Kit图文排版功能相关推荐

  1. 手把手教你集成华为Image Kit图像裁剪功能

    前言 在我们拍摄完一张照片后,为了让照片更好看.比例更完美经常会裁剪掉多余的部分.华为Image Kit图片裁剪功能给您提供设置裁剪比例.设置裁剪图形.图片旋转等一系列便捷的操作. 应用场景 我们最常 ...

  2. java中图片和字节数组相互转化

    java中图片和字节数组相互转化 方案一:使用ImageIO来实现 将图片转化为字节数组 /*** 通过图片路径将图片文件转化为字符数组* * @param url 图片路径* @return byt ...

  3. php图文排版样式模版,微信公众号排版,我的妈呀,这些图文排版模板也太好看了吧!...

    原标题:微信公众号排版,我的妈呀,这些图文排版模板也太好看了吧! 胖友们大家好呀 我是135编辑器 [www.135editor.com]的三儿 上个月!还是上上个月! 不重要! 我们推送了一篇微信排 ...

  4. 【源码】java中图片和Base64互相转换源码

    java中的图片和Base64为之间的转换,和android有区别的 Base64和图片之间的转换可以用于客户端和服务器数据传输中,在android客户端上获取图片,然后转换成Base64,按照普通S ...

  5. java中图片与像素矩阵转换,java - Java中具有矩阵乘法的图片转换不起作用 - 堆栈内存溢出...

    我正在用Java实现图片转换. 到目前为止,我已经实现了以下类: 矩阵 (持有一个3x3矩阵,该矩阵将用于与Vector相乘) 向量 (用于与变换矩阵相乘以生成原始图像像素的新位置) PictureT ...

  6. 写给大忙人看的 - Java中图片压缩上传至MinIO服务器(4)

    之前文章已经介绍了 MinIO 的环境搭建,已经对文件的上传下载方法,本篇文章一起与大家来学习图片压缩上传的方法 1.背景 最近客户总抱怨 APP 中图片显示较慢, 升级服务器带宽又没有多的预算.查看 ...

  7. 在java中图片路径_java中获取图片路径三中方法

    java中获取图片路径的方法 //获取路径三中方法 //+ f.getOriginalFilename(); //String filedir = Thread.currentThread().get ...

  8. [转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

    首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类.Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操 ...

  9. JAVA中Action层, Service层 ,model层 和 Dao层的功能区分

    首先这是现在最基本的分层方式,结合了SSH架构.model层就是对应的数据库表的实体类.Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操 ...

最新文章

  1. runnable和handler联合实现计时循环
  2. 天池 O2O 优惠券使用预测思路解析与代码实战
  3. 超完整的 Chrome 浏览器客户端调试大全
  4. arcgis api for js共享干货系列之二自定义Navigation控件样式风格
  5. Core Temp-CPU温度计
  6. 企业架构:使用TOGAF进行产品开发
  7. 物流行业GPS定位应用解决方案
  8. 10首不可不读的苏轼“最”诗词,人间万事,不过如此!
  9. 怎么压缩PNG图片的大小?如何对PNG图片进行压缩
  10. maya多边形建模怎样做曲面_maya多边形建模教程_maya建模教程
  11. 剪切板的使用: 复制 粘贴
  12. java bt下载_bt: Java种子下载程序
  13. javascript英语单词音节拆分_音节拆分与合并
  14. 谷歌卫星地图下载器bigemap的优势
  15. htlm5实习报告_网页设计实习报告
  16. Google's BBR拥塞控制算法如何对抗丢包
  17. 改造vue-quill-editor: 结合element-ui上传图片到服务器
  18. Qt处理Excel的一些库
  19. oracle connect by 取树的叶子节点、根节点
  20. 什么是缓存预热和热备?

热门文章

  1. 你强任你强,我干我本行——Java基础(下)
  2. java的map线程安全吗_Java中Map线程安全实现
  3. 解决KVM中鼠标不同步问题
  4. 记一次,编译MuseScore的经历
  5. 更改CM113-Z光猫成桥接模式
  6. unity学习笔记~材质金属颜色对照表
  7. 学生为什么要上北大计算机信息学,为什么要学信息学奥赛(NOIP)
  8. 如何科学应对新冠疫情
  9. 程序员,春天来了,你定了计划清单没
  10. win10安装redis及基本操作