前言
現在華為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字段:
注意:使用圖文智能排版服務時,開發者需要保證提供的token是有效的,否則無法使用該服務。token的獲取方式可參見token獲取方式:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/get_token-0000001055139693-V5。
步驟6:停止服務。
當不再需要圖文智能排版效果時,調用該接口停止服務,stopCode為0時,執行成功。
if (null != imageVisionAPI) {
int stopCode = imageVisionAPI.stop();
}
Demo展示
Github源碼
Github源碼:https://github.com/HMS-Core/hms-image-vision-java
原文鏈接:https://developer.huawei.com/consumer/cn/forum/topic/0201404755216720220?fid=18
作者:胡椒