色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

OpenHarmony技術社區(qū) ? 來源:鴻蒙技術社區(qū) ? 作者:軟通動力HOS ? 2021-10-19 09:17 ? 次閱讀

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

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

功能介紹

生成二維碼主要根據(jù)開發(fā)者給定的字符串信息和二維碼圖片尺寸,返回相應的二維碼圖片字節(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 生成相應的二維碼圖片字節(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)ⅲ⑴c能力引擎的連接

代碼如下:
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ù)輸入的字符串信息生成相應的二維碼圖片字節(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();
}
}

責任編輯:haq


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

    關注

    183

    文章

    2634

    瀏覽量

    66308
  • HarmonyOS
    +關注

    關注

    79

    文章

    1973

    瀏覽量

    30143

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

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

收藏 人收藏

    評論

    相關推薦

    工業(yè)視覺在條碼/二維碼識別領域的應用

    工業(yè)視覺技術在條碼和二維碼識別領域的應用日益廣泛,它通過高精度的圖像處理和識別算法,實現(xiàn)了對條碼和二維碼的快速、準確識別。這項技術不僅提高了生產(chǎn)效率,還降低了人工錯誤的可能性,確保了產(chǎn)
    的頭像 發(fā)表于 11-18 16:28 ?245次閱讀
    工業(yè)視覺在條碼/<b class='flag-5'>二維碼</b>識別領域的應用

    工業(yè)二維碼器在電子制造業(yè)中的應用

    工業(yè)二維碼器在電子制造業(yè)中的應用主要體現(xiàn)在以下幾個方面:▲生產(chǎn)追溯管理工業(yè)二維碼器通過對電子產(chǎn)品上的二維碼進行快速掃描,實現(xiàn)了高效、
    的頭像 發(fā)表于 11-13 16:19 ?181次閱讀
    工業(yè)<b class='flag-5'>二維碼</b>讀<b class='flag-5'>碼</b>器在電子制造業(yè)中的應用

    二維碼識讀設備有哪些類型

    隨著二維碼應用的日益普及,各類二維碼識讀設備也應運而生。這些設備不僅極大地方便了我們的日常生活,也為企業(yè)提供了更加高效便捷的服務。那么,你知道二維碼識讀設備都有哪些類型嗎?讓我們一起來了解一下。據(jù)
    的頭像 發(fā)表于 11-05 16:10 ?172次閱讀
    <b class='flag-5'>二維碼</b>識讀設備有哪些類型

    二維碼掃描頭設備嵌入到閘機上,實現(xiàn)掃手機屏幕完成簽到簽退

    在現(xiàn)代社會,隨著科技的飛速發(fā)展,二維碼技術已經(jīng)滲透到我們生活的方方面面,特別是在門禁管理、簽到簽退等場景中,二維碼掃描頭設備的嵌入應用極大地提升了管理效率和用戶體驗。本文將探討二維碼
    的頭像 發(fā)表于 09-18 15:45 ?272次閱讀
    <b class='flag-5'>二維碼</b>掃描頭設備嵌入到閘機上,實現(xiàn)掃手機屏幕<b class='flag-5'>碼</b>完成簽到簽退

    工業(yè)二維碼掃描設備如何助力流水線生產(chǎn)?

    工業(yè)二維碼掃描設備被廣泛應用于現(xiàn)代工廠的流水線作業(yè)中,它們能夠高效、準確地讀取移動中的二維碼。這些掃器通常被設計為固定式或手持式,以適應不同的生產(chǎn)環(huán)境和需求。固定式掃器安裝在特定位
    的頭像 發(fā)表于 08-12 14:56 ?286次閱讀
    工業(yè)<b class='flag-5'>二維碼</b>掃描設備如何助力流水線生產(chǎn)?

    如何為柜式終端設備選配(集成)二維碼模塊?

    隨著二維碼技術在各行各業(yè)的廣泛應用,柜式終端設備如何高效集成二維碼模塊成為行業(yè)關注焦點。針對這一需求,本文將深入探討選擇與集成二維碼模塊的關鍵要素,助力企業(yè)精準匹配,提升終端設備性能。
    的頭像 發(fā)表于 08-05 15:48 ?271次閱讀
    如何為柜式終端設備選配(集成)<b class='flag-5'>二維碼</b>模塊?

    Labview生成二維碼

    ?Labview 的一個Demo,生成二維碼
    發(fā)表于 08-01 17:12 ?7次下載

    二維碼器/二維碼讀取設備嵌入園區(qū)閘機系統(tǒng)中的應用

    二維碼閱讀設備集成至閘機系統(tǒng)中,主要功能是通過掃描用戶的二維碼通行證來實施園區(qū)出入口的自動收費。此技術憑借二維碼的便利性及掃描設備的高效性
    的頭像 發(fā)表于 06-05 14:46 ?348次閱讀
    <b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>器/<b class='flag-5'>二維碼</b>讀取設備嵌入園區(qū)閘機<b class='flag-5'>系統(tǒng)</b>中的應用

    機器視覺系統(tǒng)讀取二維碼-軟硬件配置方案

    機器視覺系統(tǒng)讀取二維碼-軟硬件配置方案
    的頭像 發(fā)表于 05-24 00:56 ?626次閱讀
    機器視覺<b class='flag-5'>系統(tǒng)</b>讀取<b class='flag-5'>二維碼</b>-軟硬件配置方案

    二維碼模塊嵌入到電梯設備里

    二維碼模塊在電梯設備中的應用1.二維碼模塊的基本介紹二維碼模塊是一種基于自動識別
    的頭像 發(fā)表于 05-08 10:40 ?352次閱讀
    <b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>模塊嵌入到電梯設備里

    ELF 1技術貼|如何在開發(fā)板上生成二維碼圖像

    在開發(fā)應用程序時,常常需要生成二維碼以便于用戶通過掃描快速訪問信息。為了實現(xiàn)這一功能開發(fā)者通常選用QRencode專為生成二維碼圖像設計的開源庫。然而,要在特定平臺上使用QRencod
    的頭像 發(fā)表于 05-07 14:54 ?669次閱讀
    ELF 1<b class='flag-5'>技術</b>貼|如何在開發(fā)板上<b class='flag-5'>生成</b><b class='flag-5'>二維碼</b>圖像

    飛凌嵌入式ElfBoard ELF 1板卡-在線二維碼生成

    在線二維碼生成器允許用戶將文本、網(wǎng)址、圖片或其他數(shù)據(jù)轉換為二維碼形式。二維碼是一種特殊類型的條形碼,它可以通過掃描來快速識別和讀取信息。在線二維碼
    發(fā)表于 04-24 17:00

    怎么在Framewin里顯示二維碼

    各位前輩好,剛剛開始使用STemWin。現(xiàn)在一個Framewin里顯示二維碼,在Framewin初始化里調(diào)用二維碼函數(shù)沒有反應。請問需要怎么調(diào)用?
    發(fā)表于 04-16 08:27

    遠距離二維碼掃描器如何選擇?看看以下三款遠距離二維碼模塊

    隨著二維碼相關技術及硬件的普及與低成本化,二維條碼掃描設備的應用被人們廣為熟知,應用的行業(yè)也眾多。然而,在某些場景中,由于需要遠距離掃描二維碼(條碼遠距離識別),傳統(tǒng)的掃
    的頭像 發(fā)表于 03-21 15:41 ?693次閱讀
    遠距離<b class='flag-5'>二維碼</b>掃描器如何選擇?看看以下三款遠距離<b class='flag-5'>二維碼</b>掃<b class='flag-5'>碼</b>模塊

    Labview調(diào)用Halcon識別二維碼

    Labview調(diào)用Halcon識別二維碼 可一次識別多個二維碼 使用Labview 2020編輯,halcon的版本是 19.11,32位
    發(fā)表于 02-21 16:31
    主站蜘蛛池模板: 在线观看插女生免费版| 牛牛在线1视频| 久99久热只有精品国产99| 国产亚洲综合视频| 精品国产国偷自产在线观看| 乱h好大噗嗤噗嗤烂了| 女人 我狠狠疼你| 婷婷开心激情综合五月天| 午夜黄视频| 亚洲一区免费香蕉在线| 2022一本久道久久综合狂躁| RUN AWAY无删减全集动漫| 国产成人一区免费观看| 挤奶门事件完整照片| 免费在线观看a视频| 无遮挡午夜男女XX00动态| 中文字幕绝色少妇性| 被黑人群jian又粗又大H| 好色美女小雅| 日韩吃奶摸下AA片免费观看| 亚洲三级成人| 搞基福利社| 免费被靠视频动漫| 校园女教师之禁区| 插曲的痛30分钟视频最新章节| 国色天香视频在线社区| 青青草原91| 91福利潘春春在线观看| 韩国演艺圈qvod| 日本黄色www| 97国产成人精品免费视频| 国产亚洲美女在线视频视频| 日本熟妇乱妇熟色在线电影| 月夜直播视频免费观看| 国产精品乱人无码伦AV在线A| 女人 我狠狠疼你| 最近免费中文字幕大全免费| 好大的太粗好深BL| 亚洲精品久久久992KVTV| 国产精品69人妻无码久久| 人人爽天天碰狠狠添|