W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
圖像解碼就是將所支持格式的存檔圖片解碼成統(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) | 從文件對(duì)象創(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() | 釋放對(duì)象關(guān)聯(lián)的本地資源。 |
ImageSource.SourceOptions srcOpts = new ImageSource.SourceOptions();
srcOpts.formatHint = "image/png";
String pathName = "/path/to/image.png";
ImageSource imageSource = ImageSource.create(pathName, srcOpts);
ImageSource imageSourceNoOptions = ImageSource.create(pathName, 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);
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.createIncrementalSource(incOpts);
// 獲取到一定的數(shù)據(jù)時(shí)嘗試解碼
imageSource.updateData(data, 0, bytes, false);
ImageSource.DecodingOptions decodingOpts = new ImageSource.DecodingOptions();
PixelMap pixelMap = imageSource.createPixelmap(decodingOpts);
// 更新數(shù)據(jù)再次解碼,重復(fù)調(diào)用直到數(shù)據(jù)全部更新完成
imageSource.updateData(data, 0, bytes, false);
PixelMap pixelMap = imageSource.createPixelmap(decodingOpts);
// 數(shù)據(jù)全部更新完成時(shí)需要傳入isFinal為true
imageSource.updateData(data, 0, bytes, true);
PixelMap pixelMap = imageSource.createPixelmap(decodingOpts);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: