diff --git a/arkoala-arkts/arkui/src/extractors.ets b/arkoala-arkts/arkui/src/extractors.ets index d18f5a6041ddc8a917705978d2e219b8e40aeedb..29a962708036c1fd0e5af44ecc8e417a145f1e3a 100644 --- a/arkoala-arkts/arkui/src/extractors.ets +++ b/arkoala-arkts/arkui/src/extractors.ets @@ -23,7 +23,7 @@ export namespace extractors { } export function fromImagePixelMapPtr(ptr: KPointer): image.PixelMap { - return new image.PixelMapInner(ptr) + return fromPointer("@ohos.multimedia.image.image.PixelMapInner", ptr) as image.PixelMap } function toPointer(obj: Object, declarationName: string, pointerPropName: string): long { @@ -33,5 +33,16 @@ export namespace extractors { } throw new Error(`native pointer for ${declarationName} declaration is not found!`) } + + // Get Type for exported classes: Type.from() + // Get Type for non exported classes: Type.resolve("package.ns.ClassName") + function fromPointer(typeName: string, ptr: long): Object { + const type = Type.resolve(typeName) + if (type instanceof ClassType) { + const classType = type as ClassType + return classType.make([ptr]) + } + throw new Error(`Type "${typeName}" is not a class type: ${type}`) + } } diff --git a/arkoala-arkts/modules/ohos/src/multimedia.image.ets b/arkoala-arkts/modules/ohos/src/multimedia.image.ets index ca7708abb437b1e06086479f38a3b9febc10d99b..aef8628528c06443c9e9463ad4a1fa6ef4d438ee 100644 --- a/arkoala-arkts/modules/ohos/src/multimedia.image.ets +++ b/arkoala-arkts/modules/ohos/src/multimedia.image.ets @@ -32,7 +32,7 @@ export namespace image { writeBufferToPixels(src: ArrayBuffer): void } - export class PixelMapInner implements PixelMap { + class PixelMapInner implements PixelMap { private nativeObj: long = 0;