feat:android support ArrayBuffer Resource

This commit is contained in:
pengfei.zhou
2021-11-18 19:06:10 +08:00
committed by osborn
parent 3bedd8034c
commit e270b9c520
21 changed files with 481 additions and 59 deletions

View File

@@ -14,14 +14,17 @@ import {
Text,
Gravity,
resourceLoader,
imageDecoder,
createRef,
loge,
} from "doric";
import { colors, label } from "./utils";
import { img_base64 } from "./image_base64";
import { loge } from "doric/lib/src/util/log";
@Entry
export class ResourceDemo extends Panel {
build(root: Group): void {
const iv = createRef<Image>();
<Scroller parent={root} layoutConfig={layoutConfig().most()}>
<VLayout
layoutConfig={layoutConfig().mostWidth().fitHeight()}
@@ -53,12 +56,24 @@ export class ResourceDemo extends Panel {
/>
<Image
image={new Base64Resource(img_base64[0])}
ref={iv}
onClick={async () => {
const resource = new RemoteResource(
"https://p.upyun.com/demo/webp/webp/jpg-0.webp"
);
const rawData = await resourceLoader(context).load(resource);
loge(rawData.byteLength);
const imageInfo = await imageDecoder(context).getImageInfo(
resource
);
loge(imageInfo);
const pixels = await imageDecoder(context).decodeToPixels(resource);
const unit8Array = new Uint8Array(pixels);
for (let i = 0; i < unit8Array.length; i += 4) {
unit8Array[i] -= 20;
}
loge(pixels.byteLength);
iv.current.image = resource;
}}
/>
</VLayout>