chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙系統(tǒng)生成二維碼技術(shù)

OpenHarmony技術(shù)社區(qū) ? 來源:鴻蒙技術(shù)社區(qū) ? 作者:軟通動力HOS ? 2021-10-19 09:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在實際應(yīng)用開發(fā)中,時不時的會遇到 AI 領(lǐng)域相關(guān)的一些技術(shù),本節(jié)主要詳細講述一下生成二維碼技術(shù),二維碼可能涉及在各領(lǐng)域中,如:社交或通訊類應(yīng)用、購物或支付類應(yīng)用等。

所以對于 HarmonyOS 開發(fā)者而言,也需要了解和掌握 HarmonyOS AI 領(lǐng)域相關(guān)技術(shù),這對于每一個 HarmonyOS 開發(fā)者,也是一項必不可少的專業(yè)技能。

功能介紹

生成二維碼主要根據(jù)開發(fā)者給定的字符串信息和二維碼圖片尺寸,返回相應(yīng)的二維碼圖片字節(jié)流。調(diào)用方可以通過二維碼字節(jié)流生成二維碼圖片。

開發(fā)指南

①創(chuàng)建二維碼

實例化接口,獲取二維碼偵測器:
IBarcodeDetectorbarcodeDetector
=VisionManager.getBarcodeDetector(QRCodeAbilitySlice.this);

定義碼生成圖像的尺寸:
finalintSAMPLE_LENGTH=500;
根據(jù)圖像的大小,分配字節(jié)流數(shù)組的空間:
byte[]byteArray=newbyte[SAMPLE_LENGTH*SAMPLE_LENGTH*4];
調(diào)用 IBarcodeDetector 的 detect() 方法,根據(jù)輸入的字符串信息 barText 生成相應(yīng)的二維碼圖片字節(jié)流:
barcodeDetector.detect(barText,byteArray,SAMPLE_LENGTH,SAMPLE_LENGTH);
釋放偵測器:
barcodeDetector.release();
通過 SourceOptions 指定數(shù)據(jù)源的格式信息:
ImageSource.SourceOptionssrcOpts=newImageSource.SourceOptions();
定義圖片格式:
srcOpts.formatHint="image/png";
創(chuàng)建圖片源:
ImageSourceimgSource=ImageSource.create(byteArray,srcOpts);
創(chuàng)建圖像解碼選項:
ImageSource.DecodingOptionsdecodingOpts=new
ImageSource.DecodingOptions();
decodingOpts.desiredPixelFormat=PixelFormat.ARGB_8888;

通過圖片源創(chuàng)建 PixelMap:
PixelMappMap=imgSource.createPixelmap(decodingOpts);
賦值到圖片標簽
imgQrCode.setPixelMap(pMap);
釋放資源:
barcodeDetector.release();
imgSource.release();
if(pMap!=null)
{
pMap.release();
}

斷開與能力引擎的連接:
VisionManager.destroy();

②定義 ConnectionCallback 回調(diào),實現(xiàn)連接能力引擎成功與否后的操作

代碼如下:
ConnectionCallbackconnectionCallback=newConnectionCallback(){
@Override
publicvoidonServiceConnect(){
需要生成二維碼的字符串:
StringbarText="";

連接成功生成二維碼:
createQRCode(barText);
}
@Override
publicvoidonServiceDisconnect(){
//Dosomethingwhenserviceconnectsunsuccessfully
}
};

③調(diào)用 VisionManager.init() 方法,將此工程的 context 和 connectionCallback作為入?yún)?,建立與能力引擎的連接

代碼如下:
intresult=VisionManager.init(context,connectionCallback);

示例代碼

xml 布局:


<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:orientation="vertical">

<Image
ohos:id="$+id:imgQrCode"
ohos:height="500vp"
ohos:width="500vp"
ohos:layout_alignment="center"/>

DirectionalLayout>

案例代碼:

MainAbilitySlice.java
packagecom.isoftstone.qrcode.slice;

importcom.isoftstone.qrcode.ResourceTable;
importohos.aafwk.ability.AbilitySlice;
importohos.aafwk.content.Intent;
importohos.agp.components.Text;

publicclassMainAbilitySliceextendsAbilitySlice{

@Override
publicvoidonStart(Intentintent){
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
TextqrCode=(Text)findComponentById(ResourceTable.Id_qrCode_text);
qrCode.setClickedListener(component->present(newQRCodeAbilitySlice(),newIntent()));
}

@Override
publicvoidonActive(){
super.onActive();
}

@Override
publicvoidonForeground(Intentintent){
super.onForeground(intent);
}
}
QRCodeAbilitySlice.java

packagecom.isoftstone.qrcode.slice;

importcom.isoftstone.qrcode.ResourceTable;
importohos.aafwk.ability.AbilitySlice;
importohos.aafwk.content.Intent;
importohos.agp.components.Image;
importohos.ai.cv.common.ConnectionCallback;
importohos.ai.cv.common.VisionManager;
importohos.ai.cv.qrcode.IBarcodeDetector;
importohos.media.image.ImageSource;
importohos.media.image.PixelMap;
importohos.media.image.common.PixelFormat;

/**
*二維碼生成
*/
publicclassQRCodeAbilitySliceextendsAbilitySlice{

privateImageimgQrCode;
@Override
publicvoidonStart(Intentintent){
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_qrcode);
imgQrCode=(Image)findComponentById(ResourceTable.Id_imgQrCode);
}

@Override
publicvoidonActive(){
super.onActive();
ConnectionCallbackconnectionCallback=newConnectionCallback(){
@Override
publicvoidonServiceConnect(){
//需要生成二維碼的字符串
StringbarText="www.baidu.com";
//連接成功生成二維碼
createQRCode(barText);
}

@Override
publicvoidonServiceDisconnect(){
//Dosomethingwhenserviceconnectsunsuccessfully
}
};
//初始化,建立與能力引擎的連接
VisionManager.init(this,connectionCallback);
}

@Override
publicvoidonForeground(Intentintent){
super.onForeground(intent);
}

/**
*創(chuàng)建二維碼
*@parambarText需要生成二維碼的字符串
*/
privatevoidcreateQRCode(StringbarText){
//實例化接口,獲取二維碼偵測器
IBarcodeDetectorbarcodeDetector=VisionManager.getBarcodeDetector(QRCodeAbilitySlice.this);
//定義碼生成圖像的尺寸
finalintSAMPLE_LENGTH=500;
//根據(jù)圖像的大小,分配字節(jié)流數(shù)組的空間
byte[]byteArray=newbyte[SAMPLE_LENGTH*SAMPLE_LENGTH*4];
//調(diào)用IBarcodeDetector的detect()方法,根據(jù)輸入的字符串信息生成相應(yīng)的二維碼圖片字節(jié)流
barcodeDetector.detect(barText,byteArray,SAMPLE_LENGTH,SAMPLE_LENGTH);
//釋放偵測器
barcodeDetector.release();
//通過SourceOptions指定數(shù)據(jù)源的格式信息
ImageSource.SourceOptionssrcOpts=newImageSource.SourceOptions();
//定義圖片格式
srcOpts.formatHint="image/png";
//創(chuàng)建圖片源
ImageSourceimgSource=ImageSource.create(byteArray,srcOpts);
//創(chuàng)建圖像解碼選項
ImageSource.DecodingOptionsdecodingOpts=newImageSource.DecodingOptions();
decodingOpts.desiredPixelFormat=PixelFormat.ARGB_8888;
//通過圖片源創(chuàng)建PixelMap
PixelMappMap=imgSource.createPixelmap(decodingOpts);
//賦值到圖片標簽
imgQrCode.setPixelMap(pMap);
//釋放資源
barcodeDetector.release();
imgSource.release();
if(pMap!=null)
{
pMap.release();
}
//斷開與能力引擎的連接
VisionManager.destroy();
}
}

責(zé)任編輯:haq


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    69310
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2146

    瀏覽量

    35509

原文標題:在鴻蒙上生成二維碼的方法!

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    二維碼模塊是什么?它和普通條碼識別設(shè)備有什么不同

    在物聯(lián)網(wǎng)技術(shù)飛速發(fā)展的今天,條碼與二維碼已成為信息傳遞的重要載體,從超市結(jié)賬到工業(yè)生產(chǎn)溯源,從移動支付到醫(yī)療耗材管理,相關(guān)識別設(shè)備無處不在。其中,二維碼模塊作為核心識別部件,正憑借
    的頭像 發(fā)表于 11-06 15:54 ?192次閱讀
    <b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>模塊是什么?它和普通條碼識別設(shè)備有什么不同

    門禁二維碼掃描模塊使用哪個產(chǎn)品合適?

    在現(xiàn)代門禁系統(tǒng)中,二維碼掃描模塊的選擇至關(guān)重要。它不僅關(guān)系到門禁管理的效率,還影響著用戶的使用體驗。那么,究竟哪款產(chǎn)品更適合作為門禁二維碼掃描模塊呢?答案是新大陸FM25-Std二維
    的頭像 發(fā)表于 09-16 15:30 ?472次閱讀
    門禁<b class='flag-5'>二維碼</b>掃描模塊使用哪個產(chǎn)品合適?

    哪款二維碼模組適合嵌入戶外取餐柜,用于掃二維碼

    在智能取餐柜普及的當(dāng)下,二維碼模組作為核心交互組件,其性能直接影響用戶體驗與設(shè)備穩(wěn)定性。針對戶外場景的特殊需求,深圳遠景達物聯(lián)網(wǎng)推出的LV4300Pro系列二維碼模組,憑借工業(yè)級設(shè)計與場景化技術(shù)優(yōu)化
    的頭像 發(fā)表于 09-10 15:00 ?428次閱讀
    哪款<b class='flag-5'>二維碼</b>模組適合嵌入戶外取餐柜,用于掃<b class='flag-5'>二維碼</b>

    【嘉楠堪智K230開發(fā)板試用體驗】+二維碼識別

    二維碼識別 二維碼識別本質(zhì)上是一個通過圖像處理技術(shù)定位并矯正圖像中的二維碼區(qū)域,然后根據(jù)其特定編碼規(guī)則讀取黑白模塊的進制數(shù)據(jù),并利用內(nèi)置的
    發(fā)表于 08-22 20:16

    掃描條碼模塊、二維碼模塊,廣泛應(yīng)用于定制的手持設(shè)備

    在信息高速流轉(zhuǎn)的時代,二維碼作為信息承載的重要載體,推動著各類識別技術(shù)的革新。其中,掃描條碼模塊與二維碼模塊作為核心組件,衍生出了眾多適配不同場景的設(shè)備,安卓手持終端便是典型代表——它以嵌入式
    的頭像 發(fā)表于 08-18 15:18 ?395次閱讀
    掃描條碼模塊、<b class='flag-5'>二維碼</b>模塊,廣泛應(yīng)用于定制的手持設(shè)備

    GM861條二維碼識別模塊用戶手冊

    GM861條二維碼識別模塊用戶手冊
    發(fā)表于 07-09 14:56 ?0次下載

    基于STM32的二維碼識別源碼+二維碼解碼庫lib

    基于STM32的二維碼識別源碼+二維碼解碼庫lib,推薦下載!
    發(fā)表于 05-28 22:04

    基于LockAI視覺識別模塊:C++二維碼識別

    二維碼識別是視覺模塊經(jīng)常使用到的功能之一。我們將演示如何使用基于瑞芯微RV1106的LockAI視覺識別模塊進行二維碼識別。
    的頭像 發(fā)表于 05-26 09:42 ?679次閱讀
    基于LockAI視覺識別模塊:C++<b class='flag-5'>二維碼</b>識別

    基于STM32的二維碼識別源碼+二維碼解碼庫lib

    基于STM32的二維碼識別源碼+二維碼解碼庫lib項目實例下載! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第一時間告知,刪除內(nèi)容!
    發(fā)表于 05-23 20:45

    為什么說二維碼模塊是智能終端的“眼睛”?

    系統(tǒng)到物流的包裹追蹤,這些看似簡單的掃動作背后,都離不開這個微型"視覺系統(tǒng)"的高效運作。在物聯(lián)網(wǎng)技術(shù)飛速發(fā)展的今天,二維碼
    的頭像 發(fā)表于 05-21 14:39 ?633次閱讀
    為什么說<b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>模塊是智能終端的“眼睛”?

    基于RK3576開發(fā)板的二維碼生成

    檔介紹了如何快速上手二維碼生成,包括源碼工程下載、開發(fā)環(huán)境搭建、例程編譯與運行。通過EASY-EAI API,用戶可輕松生成二維碼圖片,API封裝了
    的頭像 發(fā)表于 05-10 15:19 ?938次閱讀
    基于RK3576開發(fā)板的<b class='flag-5'>二維碼</b><b class='flag-5'>生成</b>

    二維碼讀取器是干嘛的

    二維碼讀取器(用于二維碼讀取的機器),作為一種現(xiàn)代化的自動識別技術(shù)設(shè)備,正日益滲透到我們生活的方方面面。從商場購物到物流配送,從醫(yī)療管理到工業(yè)生產(chǎn)線,二維碼讀取器憑借其高效、準確的讀取
    的頭像 發(fā)表于 03-17 15:57 ?833次閱讀
    <b class='flag-5'>二維碼</b>讀取器是干嘛的

    一“”當(dāng)先!看二維碼模組如何重塑智能門鎖掃體驗

    在科技日新月異的今天,智能門鎖正逐步取代傳統(tǒng)機械鎖,成為現(xiàn)代家庭安全防護的首選。在這場門鎖智能化革命中,二維碼模組以其獨特的識別技術(shù)和便捷的操作方式,成為智能門鎖的重要組成部分。本文將深入探討二維碼
    的頭像 發(fā)表于 03-12 16:17 ?764次閱讀
    一“<b class='flag-5'>碼</b>”當(dāng)先!看<b class='flag-5'>二維碼</b>模組如何重塑智能門鎖掃<b class='flag-5'>碼</b>體驗

    嵌入式二維碼識別引擎是什么設(shè)備?哪些場景用得到?

    在科技日新月異的今天,嵌入式技術(shù)已廣泛滲透到我們生活的方方面面,其中,嵌入式二維碼識別引擎作為一種高效、便捷的信息采集工具,正逐漸成為眾多行業(yè)智能化升級的重要推手。本文將帶您深入探索二維碼識讀引擎
    的頭像 發(fā)表于 03-10 14:57 ?621次閱讀
    嵌入式<b class='flag-5'>二維碼</b>識別引擎是什么設(shè)備?哪些場景用得到?

    快速將二維碼掃描識別模組嵌入集成到安卓一體機上使用

    模組與安卓系統(tǒng)、配置二維碼掃描模組的參數(shù)以及測試二維碼掃描模組的功能。一、在安卓一體機上安裝二維碼掃描模組1.1確定應(yīng)用場景與模組選擇在選擇二維碼
    的頭像 發(fā)表于 02-28 15:59 ?790次閱讀
    快速將<b class='flag-5'>二維碼</b>掃描識別模組嵌入集成到安卓一體機上使用