Fix null deref & update compress

Gainmap ctor always sets the native bitmap properly,
avoids potential confusion over mGainmapContents vs.
native bitmap pointer

Also call the fancier newer compress function

Test: SilkFX
Bug: 266628247
Change-Id: I89728a66202b4cdad54e8f163bc04dc419b8187b
This commit is contained in:
John Reck
2023-02-16 21:53:50 -05:00
parent 79d1135cb8
commit 9eb7779ae0
5 changed files with 2 additions and 2 deletions

View File

@@ -96,8 +96,8 @@ public final class Gainmap implements Parcelable {
throw new RuntimeException("internal error: native gainmap is 0");
}
mGainmapContents = gainmapContents;
mNativePtr = nativeGainmap;
setGainmapContents(gainmapContents);
NoImagePreloadHolder.sRegistry.registerNativeAllocation(this, nativeGainmap);
}

View File

@@ -464,7 +464,7 @@ bool Bitmap::compress(JavaCompressFormat format, int32_t quality, SkWStream* str
SkBitmap baseBitmap = getSkBitmap();
SkBitmap gainmapBitmap = gainmap()->bitmap->getSkBitmap();
SkJpegEncoder::Options options{.fQuality = quality};
return SkJpegGainmapEncoder::EncodeJpegR(stream, baseBitmap.pixmap(), options,
return SkJpegGainmapEncoder::EncodeHDRGM(stream, baseBitmap.pixmap(), options,
gainmapBitmap.pixmap(), options, gainmap()->info);
}
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB