国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HarmonyOS學(xué)習(xí)路之開發(fā)篇—多媒體開發(fā)(圖像開發(fā) 一)

這篇具有很好參考價值的文章主要介紹了HarmonyOS學(xué)習(xí)路之開發(fā)篇—多媒體開發(fā)(圖像開發(fā) 一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

圖像開發(fā)概述

HarmonyOS圖像模塊支持圖像業(yè)務(wù)的開發(fā),常見功能如圖像解碼、圖像編碼、基本的位圖操作、圖像編輯等。當(dāng)然,也支持通過接口組合來實(shí)現(xiàn)更復(fù)雜的圖像處理邏輯。

基本概念

  • 圖像解碼

    圖像解碼就是不同的存檔格式圖片(如JPEG、PNG等)解碼為無壓縮的位圖格式,以方便在應(yīng)用或者系統(tǒng)中進(jìn)行相應(yīng)的處理。

  • PixelMap

    PixelMap是圖像解碼后無壓縮的位圖格式,用于圖像顯示或者進(jìn)一步的處理。

  • 漸進(jìn)式解碼

    漸進(jìn)式解碼是在無法一次性提供完整圖像文件數(shù)據(jù)的場景下,隨著圖像文件數(shù)據(jù)的逐步增加,通過多次增量解碼逐步完成圖像解碼的模式。

  • 預(yù)乘

    預(yù)乘時,RGB各通道的值被替換為原始值乘以Alpha通道不透明的比例(0~1)后的值,方便后期直接合成疊加;不預(yù)乘指RGB各通道的數(shù)值是圖像的原始值,與Alpha通道的值無關(guān)。

  • 圖像編碼

    圖像編碼就是將無壓縮的位圖格式,編碼成不同格式的存檔格式圖片(JPEG、PNG等),以方便在應(yīng)用或者系統(tǒng)中進(jìn)行相應(yīng)的處理。

約束與限制

為及時釋放本地資源,建議在圖像解碼的ImageSource對象、位圖圖像PixelMap對象或圖像編碼的ImagePacker對象使用完成后,主動調(diào)用ImageSource、PixelMap和ImagePacker的release()方法。

圖像解碼開發(fā)

場景介紹

圖像解碼就是將所支持格式的存檔圖片解碼成統(tǒng)一的PixelMap圖像,用于后續(xù)圖像顯示或其他處理,比如旋轉(zhuǎn)、縮放、裁剪等。當(dāng)前支持格式包括JPEG、PNG、GIF、HEIF、WebP、BMP。

接口說明

ImageSource主要用于圖像解碼。

接口名

描述

create(String pathName, SourceOptions opts)

從圖像文件路徑創(chuàng)建圖像數(shù)據(jù)源。

create(InputStream is, SourceOptions opts)

從輸入流創(chuàng)建圖像數(shù)據(jù)源。

create(byte[] data, SourceOptions opts)

從字節(jié)數(shù)組創(chuàng)建圖像源。

create(byte[] data, int offset, int length, SourceOptions opts)

從字節(jié)數(shù)組指定范圍創(chuàng)建圖像源。

create(File file, SourceOptions opts)

從文件對象創(chuàng)建圖像數(shù)據(jù)源。

create(FileDescriptor fd, SourceOptions opts)

從文件描述符創(chuàng)建圖像數(shù)據(jù)源。

createIncrementalSource(SourceOptions opts)

創(chuàng)建漸進(jìn)式圖像數(shù)據(jù)源。

createIncrementalSource(IncrementalSourceOptions opts)

創(chuàng)建漸進(jìn)式圖像數(shù)據(jù)源,支持設(shè)置漸進(jìn)式數(shù)據(jù)更新模式。

createPixelmap(DecodingOptions opts)

從圖像數(shù)據(jù)源解碼并創(chuàng)建PixelMap圖像。

createPixelmap(int index, DecodingOptions opts)

從圖像數(shù)據(jù)源解碼并創(chuàng)建PixelMap圖像,如果圖像數(shù)據(jù)源支持多張圖片的話,支持指定圖像索引。

updateData(byte[] data, boolean isFinal)

更新漸進(jìn)式圖像源數(shù)據(jù)。

updateData(byte[] data, int offset, int length, boolean isFinal)

更新漸進(jìn)式圖像源數(shù)據(jù),支持設(shè)置輸入數(shù)據(jù)的有效數(shù)據(jù)范圍。

getImageInfo()

獲取圖像基本信息。

getImageInfo(int index)

根據(jù)特定的索引獲取圖像基本信息。

getSourceInfo()

獲取圖像源信息。

release()

釋放對象關(guān)聯(lián)的本地資源。

普通解碼開發(fā)步驟

1. 創(chuàng)建圖像數(shù)據(jù)源ImageSource對象,可以通過SourceOptions指定數(shù)據(jù)源的格式信息,此格式信息僅為給解碼器的提示,正確提供能幫助提高解碼效率,如果不設(shè)置或設(shè)置不正確,會自動檢測正確的圖像格式。不使用該選項(xiàng)時,可以將create接口傳入的SourceOptions設(shè)置為null。

ImageSource.SourceOptions srcOpts = new ImageSource.SourceOptions();
srcOpts.formatHint = "image/png";
// 此處傳入用戶自定義的圖像路徑
String pathName = "/sdcard/image.png";
ImageSource imageSource = ImageSource.create(pathName, srcOpts);
// 不通過SourceOptions指定數(shù)據(jù)源格式信息
ImageSource imageSourceNoOptions = ImageSource.create(pathName, null);

2. 設(shè)置解碼參數(shù),解碼獲取PixelMap圖像對象,解碼過程中同時支持圖像處理操作。

  • 設(shè)置desiredSize支持按尺寸縮放,如果設(shè)置為全0,則不進(jìn)行縮放。
  • 設(shè)置desiredRegion支持按矩形區(qū)域裁剪,如果設(shè)置為全0,則不進(jìn)行裁剪。
  • 設(shè)置rotateDegrees支持旋轉(zhuǎn)角度,以圖像中心點(diǎn)順時針旋轉(zhuǎn)。

如果只需要解碼原始圖像,不使用該選項(xiàng)時,可將給createPixelMap傳入的DecodingOptions 設(shè)置為null。

// 普通解碼疊加縮放、裁剪、旋轉(zhuǎn)
ImageSource.DecodingOptions decodingOpts = new ImageSource.DecodingOptions();
decodingOpts.desiredSize = new Size(100, 2000);
decodingOpts.desiredRegion = new Rect(0, 0, 100, 100);
decodingOpts.rotateDegrees = 90;
PixelMap pixelMap = imageSource.createPixelmap(decodingOpts); 
// 普通解碼
PixelMap pixelMapNoOptions = imageSource.createPixelmap(null);

3. 解碼完成獲取到PixelMap對象后,可以進(jìn)行后續(xù)處理,比如渲染顯示等。

漸進(jìn)式解碼開發(fā)步驟

1. 創(chuàng)建漸進(jìn)式圖像數(shù)據(jù)源ImageSource對象。

可以通過SourceOptions指定數(shù)據(jù)源的格式信息,此格式信息僅為提示,如果填寫不正確,會自動檢測正確的圖像格式。使用IncrementalSourceOptions指定圖像數(shù)據(jù)的更新方式為漸進(jìn)式更新。

ImageSource.SourceOptions srcOpts = new ImageSource.SourceOptions();
srcOpts.formatHint = "image/jpeg";
ImageSource.IncrementalSourceOptions incOpts = new ImageSource.IncrementalSourceOptions();
incOpts.opts = srcOpts;
incOpts.mode = ImageSource.UpdateMode.INCREMENTAL_DATA;
ImageSource imageSource = ImageSource.createIncrementalSource(incOpts);

2. 漸進(jìn)式更新數(shù)據(jù)。在未獲取到全部圖像時,支持先更新部分?jǐn)?shù)據(jù)來嘗試解碼,調(diào)用updateData更新數(shù)據(jù),將參數(shù)isFinal設(shè)置為false;當(dāng)獲取到全部數(shù)據(jù)后,最后一次更新數(shù)據(jù)時設(shè)置isFinal為true,表示數(shù)據(jù)更新完畢。設(shè)置解碼參數(shù)同普通解碼。

// 傳入本地圖片路徑作為圖像數(shù)據(jù)源
File file = new File("/sdcard/test.jpg");
FileInputStream fis = null;
try {
    fis = new FileInputStream(file);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] data = new byte[1024];
    int len = -1;
    while((len = fis.read(data)) != -1) {
        bos.write(data, 0, len);
    }
    byte[] fileByte = bos.toByteArray();
// 獲取到一定的數(shù)據(jù)時嘗試解碼
    imageSource.updateData(fileByte, 0, fileByte.length / 2, false);
    ImageSource.DecodingOptions decodingOpts = new ImageSource.DecodingOptions();
    PixelMap pixelMap = imageSource.createPixelmap(decodingOpts);

// 更新數(shù)據(jù)再次解碼,重復(fù)調(diào)用直到數(shù)據(jù)全部更新完成
    imageSource.updateData(fileByte, fileByte.length / 2, fileByte.length / 4, false);
    pixelMap = imageSource.createPixelmap(decodingOpts);

// 數(shù)據(jù)全部更新完成時需要傳入isFinal為true
    imageSource.updateData(fileByte, fileByte.length * 3 / 4, fileByte.length / 4, true);
    pixelMap = imageSource.createPixelmap(decodingOpts);
} catch (IOException e) {
    e.printStackTrace();
}

3. 解碼完成獲取到PixelMap對象后,可以進(jìn)行后續(xù)處理,比如渲染顯示等。文章來源地址http://www.zghlxwxcb.cn/news/detail-503125.html

到了這里,關(guān)于HarmonyOS學(xué)習(xí)路之開發(fā)篇—多媒體開發(fā)(圖像開發(fā) 一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 鴻蒙HarmonyOS開發(fā)實(shí)戰(zhàn)—多媒體開發(fā)(音頻開發(fā) 一)

    鴻蒙HarmonyOS開發(fā)實(shí)戰(zhàn)—多媒體開發(fā)(音頻開發(fā) 一)

    HarmonyOS音頻模塊支持音頻業(yè)務(wù)的開發(fā),提供音頻相關(guān)的功能,主要包括音頻播放、音頻采集、音量管理和短音播放等。 基本概念 采樣 采樣是指將連續(xù)時域上的模擬信號按照一定的時間間隔采樣,獲取到離散時域上離散信號的過程。 采樣率 采樣率為每秒從連續(xù)信號中提取并

    2024年01月24日
    瀏覽(31)
  • 軟考:中級軟件設(shè)計(jì)師:多媒體基礎(chǔ),音頻,圖像,顏色,多媒體技術(shù)的種類,圖像音頻視頻的容量計(jì)算,常見的多媒體標(biāo)準(zhǔn)

    軟考:中級軟件設(shè)計(jì)師:多媒體基礎(chǔ),音頻,圖像,顏色,多媒體技術(shù)的種類,圖像音頻視頻的容量計(jì)算,常見的多媒體標(biāo)準(zhǔn)

    提示:系列被面試官問的問題,我自己當(dāng)時不會,所以下來自己復(fù)盤一下,認(rèn)真學(xué)習(xí)和總結(jié),以應(yīng)對未來更多的可能性 關(guān)于互聯(lián)網(wǎng)大廠的筆試面試,都是需要細(xì)心準(zhǔn)備的 (1)自己的科研經(jīng)歷, 科研內(nèi)容 ,學(xué)習(xí)的相關(guān)領(lǐng)域知識,要熟悉熟透了 (2)自己的實(shí)習(xí)經(jīng)歷,做了 什

    2024年02月09日
    瀏覽(37)
  • 設(shè)計(jì)HTML5圖像和多媒體

    設(shè)計(jì)HTML5圖像和多媒體

    在網(wǎng)頁中的文本信息直觀、明了,而多媒體信息更富內(nèi)涵和視覺沖擊力。恰當(dāng)使用不同類型的多媒體可以展示個性,突出重點(diǎn),吸引用戶。在HTML5之前,需要借助插件為網(wǎng)頁添加多媒體,如Adobe Flash Player、蘋果的QuickTime等。HTML5引入原生的多媒體技術(shù),設(shè)計(jì)多媒體更簡便,用戶

    2024年02月12日
    瀏覽(26)
  • 多媒體數(shù)據(jù)處理實(shí)驗(yàn)3:圖像特征提取與檢索

    多媒體數(shù)據(jù)處理實(shí)驗(yàn)3:圖像特征提取與檢索

    1. 算法描述 功能: ??使用BOF(Bag of Features)算法提取圖像特征,在corel數(shù)據(jù)集(10*100)張圖片上實(shí)現(xiàn)以圖搜圖,即輸入數(shù)據(jù)集中某一張圖,在剩下的999張圖里搜索最鄰近的10張圖。 2.算法流程: 用 SIFT算法 提取圖像的特征。每幅圖像提取出幾百至幾千個特征點(diǎn),將所有圖像的特

    2024年02月07日
    瀏覽(28)
  • (八)穿越多媒體奇境:探索Streamlit的圖像、音頻與視頻魔法

    (八)穿越多媒體奇境:探索Streamlit的圖像、音頻與視頻魔法

    歡迎各位讀者來到“最全Streamlit教程”專欄系列!如果您正在尋找一種簡單而強(qiáng)大的方式來創(chuàng)建交互式數(shù)據(jù)應(yīng)用程序,那么Streamlit無疑是您的最佳選擇。作為該領(lǐng)域的熱門框架,Streamlit讓數(shù)據(jù)科學(xué)家、開發(fā)者和愛好者能夠以前所未有的速度構(gòu)建出引人入勝的數(shù)據(jù)可視化工具。

    2024年02月13日
    瀏覽(28)
  • 多媒體開發(fā)之cgo

    多媒體開發(fā)之cgo

    ???? go語言作為近十年來優(yōu)秀的現(xiàn)代開發(fā)語言的代表,由于繼承了c語言的簡潔和很多現(xiàn)代語言的表達(dá)方式,在廣泛的應(yīng)用場景中得到眾多愛好者的喜愛,如何將go和c、c++進(jìn)行聯(lián)合開發(fā),拓展整個開發(fā)生態(tài),不用重復(fù)造輪子,掌握cgo可以讓你得心應(yīng)手的在c和go之間傳遞信息,

    2024年02月16日
    瀏覽(27)
  • [HTML]Web前端開發(fā)技術(shù)4(HTML5、CSS3、JavaScript )圖像與多媒體文件hspace,vspace,scrollamount,bgcolor,marquee——喵喵畫網(wǎng)頁

    [HTML]Web前端開發(fā)技術(shù)4(HTML5、CSS3、JavaScript )圖像與多媒體文件hspace,vspace,scrollamount,bgcolor,marquee——喵喵畫網(wǎng)頁

    希望你開心,希望你健康,希望你幸福,希望你點(diǎn)贊! 最后的最后,關(guān)注喵,關(guān)注喵,關(guān)注喵,佬佬會看到更多有趣的博客哦?。?! 喵喵喵,你對我真的很重要! 目錄 前言 圖像與多媒體文件 網(wǎng)頁文件常見的圖像格式有: 圖像 設(shè)置圖像的替代文字 設(shè)置圖像的寬度和高度

    2024年02月05日
    瀏覽(9)
  • Android多媒體功能開發(fā)(2)——FileProvider

    使用系統(tǒng)多媒體界面需要在我們的應(yīng)用和其他應(yīng)用之間通過Intent傳遞音頻、圖片、視頻文件的信息。隨著Android版本的升級,對應(yīng)用數(shù)據(jù)安全性方面的限制越來越多。 Android 6以后不允許應(yīng)用在外部存儲隨便創(chuàng)建目錄,只能在Android規(guī)定的應(yīng)用自己的文件目錄下創(chuàng)建目錄,該目錄

    2024年02月14日
    瀏覽(27)
  • qt6 多媒體開發(fā)代碼分析(二、錄音)

    常見的音頻編碼格式包括MP3、AAC、OGG、WMA、FLAC等,它們之間具有以下區(qū)別: 編碼方式不同:這些編碼格式采用的編碼算法不同,例如MP3和AAC使用有損壓縮算法,而FLAC使用無損壓縮算法。 壓縮率和文件大小不同:由于采用的編碼算法不同,不同格式的音頻文件壓縮率和文件大

    2024年02月07日
    瀏覽(18)
  • HTML-多媒體嵌入-MDN文檔學(xué)習(xí)筆記

    HTML-多媒體嵌入-MDN文檔學(xué)習(xí)筆記

    查看更多學(xué)習(xí)筆記:GitHub:LoveEmiliaForever MDN中文官網(wǎng) 將圖片放入網(wǎng)頁 可以使用 img/ 來將圖片嵌入網(wǎng)頁,它是一個空元素,最少只需 src 屬性即可工作 src 指向圖片資源的地址,是 img/ 正常工作必不可少的屬性 ??除非有必要,否則 永遠(yuǎn)不要 把 src 指向其它網(wǎng)站上的圖片,這

    2024年02月20日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包