Unverified Commit bfcb29f0 authored by Nikolay Igotti's avatar Nikolay Igotti Committed by GitHub

Fix image pixels getter (#266)

parent 1239ae22
...@@ -904,7 +904,7 @@ class Bitmap internal constructor(ptr: NativePointer) : Managed(ptr, _FinalizerH ...@@ -904,7 +904,7 @@ class Bitmap internal constructor(ptr: NativePointer) : Managed(ptr, _FinalizerH
srcY: Int = 0 srcY: Int = 0
): ByteArray? { ): ByteArray? {
return try { return try {
val size = min(dstInfo.height, height - srcY) * rowBytes val size = min(dstInfo.height, height - srcY) * dstRowBytes
Stats.onNativeCall() Stats.onNativeCall()
withNullableResult(ByteArray(size)) { withNullableResult(ByteArray(size)) {
......
...@@ -237,12 +237,9 @@ extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skia_BitmapKt__1nReadPi ...@@ -237,12 +237,9 @@ extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skia_BitmapKt__1nReadPi
static_cast<SkColorType>(colorType), static_cast<SkColorType>(colorType),
static_cast<SkAlphaType>(alphaType), static_cast<SkAlphaType>(alphaType),
sk_ref_sp<SkColorSpace>(colorSpace)); sk_ref_sp<SkColorSpace>(colorSpace));
if (instance->readPixels(imageInfo, result_bytes, rowBytes, srcX, srcY)) { jboolean result = instance->readPixels(imageInfo, result_bytes, rowBytes, srcX, srcY);
env->ReleaseByteArrayElements(readBytes, result_bytes, 0); env->ReleaseByteArrayElements(readBytes, result_bytes, 0);
return true; return result;
} else {
return false;
}
} }
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skia_BitmapKt__1nExtractAlpha extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skia_BitmapKt__1nExtractAlpha
...@@ -253,14 +250,14 @@ extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skia_BitmapKt__1nExtrac ...@@ -253,14 +250,14 @@ extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skia_BitmapKt__1nExtrac
SkIPoint offset; SkIPoint offset;
jint *result_int = env->GetIntArrayElements(resultPoint, NULL); jint *result_int = env->GetIntArrayElements(resultPoint, NULL);
if (instance->extractAlpha(dst, paint, &offset)) { jboolean result = instance->extractAlpha(dst, paint, &offset);
if (result) {
result_int[0] = offset.fX; result_int[0] = offset.fX;
result_int[1] = offset.fY; result_int[1] = offset.fY;
env->ReleaseIntArrayElements(resultPoint, result_int, 0);
return true;
} else {
return false;
} }
env->ReleaseIntArrayElements(resultPoint, result_int, 0);
return result;
} }
extern "C" JNIEXPORT jobject JNICALL Java_org_jetbrains_skia_BitmapKt__1nPeekPixels extern "C" JNIEXPORT jobject JNICALL Java_org_jetbrains_skia_BitmapKt__1nPeekPixels
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment