影像處理技術:影像切割、標籤、貼紙花字,超細開發詳解
上一篇: 影像處理之濾鏡、圖文排版的開發詳解中,詳解了如何給應用增加圖片編輯能力中的濾鏡和圖文排版能力,今天我們繼續帶來 華為影像能力中五大影像編輯能力的另外三大能力:影像切割、主題標籤,以及貼紙花字,相信認真學習的同學已經可以成功打造出屬於自己的影像編輯應用。
話不多說,直接上手!
圖片剪裁
開發步驟
編輯調整服務,圖片裁剪服務的所有介面的實現都是基於 CropLayoutView,是一個自定義View,import的包名為com.huawei.hms.image.vision.crop.CropLayoutView,可以直接整合在layout的XML中。
1、獲取到 CropLayoutView物件。
透過findViewById獲取到CropLayoutView 物件後,可以呼叫具體的邏輯方法。
Java 程式碼
CropLayoutView cropLayoutView = findViewById(R.id.cropImageView);
2、設定需要裁剪的圖片,設定完成後,就可以對view進行操作。
Java 程式碼
cropLayoutView.setImageBitmap(inputBm);
如果需要圖片旋轉90度,則呼叫圖片旋轉介面。
Java 程式碼
cropLayoutView.rotateClockwise();
Java 程式碼
cropLayoutView.flipImageHorizontally();
如果需要圖片豎直方向映象,則呼叫圖片豎直方向映象介面
Java 程式碼
cropLayoutView.flipImageVertically();
如果需要裁剪固定比例的圖片,則呼叫如下介面。
Java 程式碼
cropLayoutView.setAspectRatio(ratioX, ratioY);
Java 程式碼
cropLayoutView.setFixedAspectRatio(false);
如果需要裁剪矩形形狀的圖片或者橢圓形形狀的圖片,則呼叫如下介面。
Java 程式碼
// 矩形 cropLayoutView.setCropShape(CropLayoutView.CropShape.RECTANGLE); // 橢圓形 cropLayoutView.setCropShape(CropLayoutView.CropShape.OVAL);
調整好圖片被裁剪的大小,獲取裁剪後圖片的bitmap格式。
Java 程式碼
Bitmap croppedImage = cropLayoutView.getCroppedImage();
調整好圖片被裁剪的大小,獲取裁剪後圖片的bitmap格式。
Java 程式碼
Bitmap croppedImage = cropLayoutView.getCroppedImage();
影像主題標籤服務
開發步驟
影像主題標籤服務開發步驟如下,需要您提供圖片和相關引數,得到相應的返回值。
1、匯入影像主題標籤服務包。
Java 程式碼
import com.huawei.hms.image.vision.*;
2、獲取影像主題標籤服務例項。
Java 程式碼
// 獲取ImageVisionImpl物件ImageVisionImpl imageVisionAPI = ImageVision.getInstance(this);
3、服務初始化,與濾鏡服務一致,可參見 開發步驟中的相關描述。
4、構建引數物件。
說明:使用影像主題標籤服務時,您需要保證提供的token是有效的,否則無法使用該服務。
token的獲取方式參見 token獲取方式。
影像主題標籤服務requestJson示例:
{ "requestId":"", "taskJson":{"language":"cn"}, "authJson":{"projectId":"projectIdTest","appId":"appIdTest","authApiKey":"authApiKeyTest","clientSecret":"CSecretTest","clientId":"CIdTest","token":"tokenTest"} }
5、影像主題標籤服務獲取結果。
您在呼叫 analyzeImageThemeTag介面時,需要輸入待處理圖片Bitmap等(參見 構建引數物件)。此功能需要聯網,如不聯網,則返回錯誤碼。
// 獲取圖片識別結果返回值 new Thread(new Runnable() { @Override public void run() { ImageVisionResult result = imageVisionAPI.analyzeImageThemeTag(requestJson, imageBitmap); } }).start();
result返回值:
說明:因為介面涉及網路請求,需要開啟子執行緒去呼叫介面。
6、停止服務。
當不再需要主題標籤效果時,呼叫該介面停止服務,stopCode為0時,執行成功。
貼紙花字
開發步驟
貼紙花字服務的所有介面的實現都是基於 StickerLayout,是一個自定義View,import的包名為com.huawei.hms.image.vision.sticker.StickerLayout,直接可以整合在layout的XML中。
1、獲取到 StickerLayout物件。
透過findViewById獲取到StickerLayout物件後,可以呼叫具體的邏輯方法。
Java 程式碼
StickerLayout mStickerLayout = findViewById(R.id.sticker_container);
2、提供資原始檔。
3、新增貼紙花字。
呼叫 addSticker介面,新增貼紙花字,傳入資原始檔路徑和檔名,如果返回碼為0,則為新增成功,貼紙花字總數最多可以新增50個。
int resultCode = mStickerLayout.addSticker(rootPath, fileName);
請求介面引數描述:
程式碼示例:
Java 程式碼
addSticker(rootPath + "貼紙1", "sticker_10_editable.png"); addSticker(rootPath + "花字4", null);
5、更新花字的文字。
你可以對花字文字進行編輯,透過回撥方法 setStickerLayoutListener(new StickerLayout.StickerLayoutListener())獲取花字文字編輯物件textEditInfo,textEditInfo呼叫setText,進行文字編輯,最後mStickerLayout呼叫 updateStickerText方法進行更新。
//獲取TextEditInfo物件 mStickerLayout.setStickerLayoutListener(new StickerLayout.StickerLayoutListener() { @Override public void onStickerLayoutClick() { } @Override public void onStickerTouch(int index) { } @Override public void onTextEdit(TextEditInfo textEditInfo) { StickerActivity.this.textEditInfo = textEditInfo; } @Override public void needDisallowInterceptTouchEvent(boolean isNeed) { } }); //更新花字文字為"花字測試"字樣 textEditInfo.setText("花字測試"); mStickerLayout.updateStickerText(textEditInfo);
>>訪問 華為影像服務官網, 華為影像服務開發指導文件,瞭解更多相關內容
原文連結: developer.huawei.com/consumer/cn…
原作者:胡椒
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2781004/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [Python影像處理] 三十.影像量化及取樣處理萬字詳細總結(推薦)Python
- 美顏sdk動態貼紙開發技術詳解
- Smarty中處理Jpgraph影像技術
- PHP影像處理開發庫PHP
- 數字影像處理day_12 影像分割
- 影像處理--影像特效特效
- 數字影像處理實驗(四)影像銳化
- 【傳統影像處理】1 數字影像基礎
- 數字影像處理--認識影像各種概念
- 影像處理技術(二)濾波去噪(上)
- webgl 影像處理2---影像畫素處理Web
- Python影像處理丨5種影像處理特效Python特效
- 醫學影像預處理之標註
- [00]數字影像處理-matlab速成Matlab
- 數字影像處理相關練習
- 影像預處理
- 超全Python影像處理講解(多圖預警)Python
- PHP影像處理繪圖、水印、驗證碼、影像壓縮技術例項總結PHP繪圖
- Python 影像處理 OpenCV (6):影像的閾值處理PythonOpenCV
- Python 影像處理 OpenCV (7):影像平滑(濾波)處理PythonOpenCV
- 技術文件:基於 Python 的影像處理系統Python
- 數字影像處理學習筆記(1)——傅立葉變換在影像處理中的應用筆記
- 【數字影像處理】直方圖均衡化詳解及程式設計實現直方圖程式設計
- 影像處理開源資料集
- 數字影像處理-取樣量化(Matlab)Matlab
- visual C++數字影像處理類C++
- 前端影像處理指南前端
- 影像處理_切邊
- 影像預處理方法
- 影像輪廓處理
- 紅外影像處理
- 影像處理案例03
- OpenCV(影像NaN處理)OpenCVNaN
- C#開發PACS醫學影像處理系統(十九):Dicom影像放大鏡C#
- C#開發PACS醫學影像處理系統(六):載入Dicom影像C#
- 影像處理之濾鏡、圖文排版的開發詳解,從入門到起飛
- Python 影像處理 OpenCV (15):影像輪廓PythonOpenCV
- openCV中的影像處理 3 影像閾值OpenCV