影像處理之濾鏡、圖文排版的開發詳解,從入門到起飛
在上一篇 如何給應用增加圖片編輯功能:剪裁、濾鏡、貼紙、排版、標籤,我們詳細講解了“圖片”風口下,各類應用可能面臨的“窘境”:由於應用內缺乏圖片編輯設計能力,或者提供的圖片編輯設計能力不足,導致原本功能強大的優質應用,沒法提高使用者留存率,影響應用自身競爭實力。 華為影像服務旨在為各類互動應用解決這一問題,可以說是應時而生,應勢而生。在詳細介紹 華為影像服務五大影像編輯能力分別是什麼、各自的應用場景以及功能價值的基礎上,接下來將為大家帶來五大圖片編輯功能的具體開發步驟。
濾鏡服務
開發步驟
濾鏡服務開發步驟如下,需要您提供圖片和相關引數,得到相應的返回值。
1、匯入濾鏡服務包。
Java程式碼
import com.huawei.hms.image.vision.*; import com.huawei.hms.image.vision.bean.ImageVisionResult;
2、獲取濾鏡服務例項。
Java程式碼
// 獲取ImageVisionImpl物件 ImageVisionImpl imageVisionAPI = ImageVision.getInstance(this);
3、服務初始化,呼叫 setVisionCallBack時需要實現 ImageVision.VisionCallBack介面,重寫其中的 onSuccess(int successCode)和 onFailure(int errorCode)方法。
-
框架初始化成功後會回撥onSuccess方法,在onSuccess方法中,需要再初始化濾鏡服務。呼叫濾鏡初始化介面時,只有透過校驗,第三方應用才能使用濾鏡服務,initCode必須為0,濾鏡服務初始化成功。
-
框架初始化失敗時會回撥onFailure方法,傳回失敗錯誤碼。
imageVisionAPI.setVisionCallBack(new ImageVision.VisionCallBack() { @Override public void onSuccess(int successCode) { int initCode = imageVisionAPI.init(context, authJson); ... } @Override public void onFailure(int errorCode) { ... }});
入參authJson:
說明:圖文智慧排版服務,影像主題標籤服務token為必選值,獲取方式參見: token獲取方式。
4、構建引數對濾鏡服務requestJson示例:象。
requestJson欄位資訊:
濾鏡的taskJson欄位資訊:
filterType對映表:
authJson對映表:請參見 authJson表。
濾鏡服務requestJson示例:
{ "requestId":"requestId", "taskJson":{"intensity":"1","filterType":"1","compressRate":"1"}, "authJson":{"projectId":"projectIdTest","appId":"appIdTest","authApiKey":"authApiKeyTest","clientSecret":"CSecretTest","clientId":"CIdTest","token":"tokenTest"}}
5、濾鏡服務獲取結果。
您在呼叫 getColorFilter介面時,需要輸入待處理圖片的Bitmap,並選擇需要的濾鏡效果。濾鏡服務根據傳入的引數對原始圖片進行處理後,返回處理後圖片的Bitmap。
Java 程式碼
// 獲取visionResult返回值new Thread(new Runnable() { @Override public void run() { ImageVisionResult visionResult = imageVisionAPI.getColorFilter(requestJson,imageBitmap); } }).start();
visionResult返回值:
response欄位資訊:
說明:呼叫 getColorFilter介面時,需要開啟一個子執行緒去執行,不能在主執行緒執行。
6、停止服務。
當不再需要濾鏡效果時,呼叫該介面停止服務,stopCode為0時,停止服務成功。
if (null != imageVisionAPI) { int stopCode = imageVisionAPI.stop();}
圖文智慧排版服務
開發步驟
圖文智慧排版服務開發步驟如下,需要您提供圖片和相關引數,得到相應的返回值。
1、匯入圖文智慧排版服務包。
import com.huawei.hms.image.vision.bean.ImageLayoutInfo ;import com.huawei.hms.image.vision.*;
2、獲取圖文智慧排版服務例項。
// 獲取ImageVisionImpl 物件ImageVisionImpl imageVisionAPI = ImageVision.getInstance(this);
3、服務初始化,與濾鏡服務一致,可參見 開發步驟中的相關描述。
構建引數物件。
圖文智慧排版的taskJson欄位資訊:
說明
styleList中,info8為豎板排版,當前僅支援中文版式,不支援其他語言版式;info3為預設兜底版式;若使用者輸入info8且輸入標籤、文字描述有非中文語種,返回使用者info3版式。
authJson對映表:請參見 authJson欄位定義。
圖文智慧排版服務requestJson示例:
Java 程式碼
{ "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、圖文智慧排版服務獲取結果。
在呼叫 analyzeImageLayout介面時,需要輸入待處理圖片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獲取方式。
6、停止服務。
當不再需要圖文智慧排版效果時,呼叫該介面停止服務,stopCode為0時,執行成功。
if (null != imageVisionAPI) { int stopCode = imageVisionAPI.stop();}
原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0202568908557260771?fid=18
原作者:胡椒
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2780057/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 影像處理的濾鏡演算法演算法
- NodeJS卷積濾鏡處理圖片DemoNodeJS卷積
- 影像濾鏡藝術----Brannan濾鏡NaN
- Flask框架從入門到精通之異常處理(十)Flask框架
- Android中OpenGL濾鏡和RenderScript圖片處理Android
- 影像處理論文詳解 | Deformable Convolutional Networks | CVPR | 2017ORM
- Python 影像處理 OpenCV (7):影像平滑(濾波)處理PythonOpenCV
- 影象處理的濾鏡演算法演算法
- 零點起飛學Photoshop CS6影像處理
- 創意效果影像處理PS濾鏡Nik Collection 5套裝中文
- C#開發PACS醫學影像處理系統(十九):Dicom影像放大鏡C#
- Python 影像處理 OpenCV (1):入門PythonOpenCV
- 【FFmpeg筆記】 從零開始之濾鏡筆記
- ffmpeg入門篇-濾鏡的基本使用
- C#開發PACS醫學影像處理系統(十二):繪圖處理之圖形標記C#繪圖
- Vulkan移植GpuImage(三)從A到C的濾鏡GPUUI
- 《Golang 從入門到跑路》之開發環境搭建Golang開發環境
- 演算法 | 數字影像處理之「中值濾波」演算法
- Shader從入門到跑路:螢幕後處理效果
- Java 異常處理專題,從入門到精通Java
- 圖形影像處理之簡單圖片
- 圖形影像處理之繪圖基礎繪圖
- 影像處理技術:影像切割、標籤、貼紙花字,超細開發詳解
- 小程式從入門到開發
- C#開發PACS醫學影像處理系統(十三):繪圖處理之病灶測量C#繪圖
- Vulkan移植GPUImage(五)從P到Z的濾鏡GPUUI
- Vulkan移植GpuImage(四)從D到O的濾鏡GPUUI
- Spring Boot從入門到實戰(十):非同步處理Spring Boot非同步
- 入門自然語言處理必看:圖解詞向量自然語言處理圖解
- 強大的CSS:濾鏡和混合模式處理的圖片如何上傳下載?CSS模式
- C#開發PACS醫學影像處理系統(六):載入Dicom影像C#
- Jmeter(八) - 從入門到精通 - JMeter配置元件(詳解教程)JMeter元件
- Flask框架從入門到精通之藍圖(二十四)Flask框架
- 跟我學Python影像處理丨帶你入門OpenGLPython
- 影像處理之骨架提取
- 從放棄到入門-Yaf(從控制器說起)
- XML從入門到深入(超詳細)XML
- 從零入門 Serverless | 一文詳解 Serverless 架構模式Server架構模式