Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 1 addition & 87 deletions app/src/main/java/com/awxkee/jxlcoder/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -107,91 +107,12 @@ class MainActivity : ComponentActivity() {
lifecycleScope.launch(Dispatchers.IO) {
val buffer5 =
assets.open("test_image_1.jpg").source().buffer().readByteArray()
val bitmap = BitmapFactory.decodeByteArray(buffer5, 0, buffer5.size)
.scale(1305, 1295)
// val encoder = JxlAnimatedEncoder(
// bitmap.width,
// bitmap.height,
// dataPixelFormat = JxlEncodingDataPixelFormat.BINARY_16
// )
// repeat(4) {
// encoder.addFrame(bitmap, 24)
// }
// val encoded = encoder.encode()

// val animated = JxlCoder.decode(encoded)
// lifecycleScope.launch {
// imagesArray.add(animated)
// }
//
// fun simpleRoundTrip(image: String) {
// val bufferPng = assets.open(image).source().buffer().readByteArray()
// val bitmap = BitmapFactory.decodeByteArray(bufferPng, 0, bufferPng.size)
// .copy(Bitmap.Config.RGBA_1010102,true)
// lifecycleScope.launch {
// imagesArray.add(bitmap)
// }
// val jxlBuffer = JxlCoder.encode(bitmap,
// channelsConfiguration = JxlChannelsConfiguration.RGB,
// compressionOption = JxlCompressionOption.LOSSY,
// effort = JxlEffort.LIGHTNING,
// decodingSpeed = JxlDecodingSpeed.SLOW)
//// val decodedEncoded = JxlCoder.decode(jxlBuffer,
//// preferredColorConfig = PreferredColorConfig.RGBA_1010102)
// val decodedEncoded = JxlAnimatedImage(jxlBuffer).getFrame(0, bitmap.width /2 , bitmap.height / 2)
// lifecycleScope.launch {
// imagesArray.add(decodedEncoded)
// }
// val fos = FileOutputStream(File(cacheDir, image))
// fos.sink().buffer().use {
// it.writeAll(ByteArrayInputStream(jxlBuffer).source().buffer())
// it.flush()
// }
// }
//
// simpleRoundTrip("screenshot_discord_5.png")
// simpleRoundTrip("screen_discord.png")
// simpleRoundTrip("screen_discord_2.png")
//
// val buffer5 = assets.open("elephant.png").source().buffer().readByteArray()
// val jxlBufferPNG = JxlCoder.Convenience.apng2JXL(buffer5, quality = 55)
// val buffer = assets.open("abstract_alpha.png").source().buffer().readByteArray()
// val bitmap = BitmapFactory.decodeByteArray(buffer, 0, buffer.size)
// .copy(Bitmap.Config.ARGB_8888, true)
// lifecycleScope.launch {
// drawables.add(BitmapDrawable(resources, bitmap))
// }
// val space = bitmap.copy(Bitmap.Config.ARGB_8888, true)
// val encoded =
// JxlCoder.encode(
// space,
// channelsConfiguration = JxlChannelsConfiguration.RGB,
// effort = JxlEffort.LIGHTNING,
// compressionOption = JxlCompressionOption.LOSSLESS,
// quality = 100,
// )
// val decoded = JxlCoder.decodeSampled(
// encoded,
// preferredColorConfig = PreferredColorConfig.HARDWARE, width = 1305,
// height = 1295
// )
// lifecycleScope.launch {
// imagesArray.add(decoded)
// }

val display: Display = this@MainActivity.windowManager.defaultDisplay
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val hdrCapabilities = display.hdrCapabilities
val maxNits = hdrCapabilities.desiredMaxLuminance
val whitePoint = hdrCapabilities.desiredMaxAverageLuminance
Log.d("Max HDR value", "$maxNits whitePoint $whitePoint")
}

var assets =
(this@MainActivity.assets.list("") ?: return@launch).toList()
// assets = assets.filter { it.contains("20181110_213419__MMC1561-HDR.jxl") }
// assets = assets.take(15)
// assets = assets.filter { it.contains("test_f32_image.jxl") }
// assets = assets.filter { it.contains("test_img_q80.jxl") }
for (asset in assets) {
try {
val buffer4 =
Expand All @@ -201,13 +122,6 @@ class MainActivity : ComponentActivity() {
val largeImageSize = JxlCoder.getSize(buffer4)
if (largeImageSize != null) {
val decodingTime = measureTimeMillis {
// val srcImage = JxlCoder.decode(
// buffer4,
// preferredColorConfig = PreferredColorConfig.HARDWARE,
// com.awxkee.jxlcoder.ScaleMode.FIT,
// toneMapper = JxlToneMapper.REC2408,
// )

// Resizable version
val srcImage = JxlCoder.decodeSampled(
buffer4,
Expand Down
20 changes: 14 additions & 6 deletions build_jxl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ else
echo "Destination directory '$destination_directory' already exists. Cloning skipped."
fi

rm -rf ./libjxl/deps.sh
cp deps.sh ./libjxl/deps.sh

ABI_LIST="armeabi-v7a arm64-v8a x86 x86_64"

cd libjxl
Expand All @@ -36,6 +33,8 @@ for abi in ${ABI_LIST}; do
-DANDROID_NDK=${NDK} \
-DSJPEG_ANDROID_NDK_PATH=${NDK} \
-DANDROID_PLATFORM=android-21 \
-DCMAKE_C_FLAGS="-DJXL_HIGH_PRECISION=0" \
-DCMAKE_CXX_FLAGS="-DJXL_HIGH_PRECISION=0" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_SYSTEM_NAME=Generic \
Expand Down Expand Up @@ -79,19 +78,21 @@ for abi in ${ABI_LIST}; do
-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=${abi} -DCMAKE_ANDROID_ARCH_ABI=${abi} \
-DANDROID_NDK=${NDK} \
-DSJPEG_ANDROID_NDK_PATH=${NDK} \
-DCMAKE_C_FLAGS="-DJXL_HIGH_PRECISION=0" \
-DCMAKE_CXX_FLAGS="-DJXL_HIGH_PRECISION=0" \
-DANDROID_PLATFORM=android-21 \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_THREAD_PREFER_PTHREAD=TRUE \
-DJPEGXL_ENABLE_SKCMS=true \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,-z,max-page-size=16384" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DTHREADS_PREFER_PTHREAD_FLAG=TRUE \
-DJPEGXL_ENABLE_TOOLS=OFF \
-DBUILD_TESTING=OFF \
-DJPEGXL_ENABLE_SKCMS=true \
-DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF \
-DJPEGXL_ENABLE_JPEGLI=OFF \
-DJPEGXL_ENABLE_SJPEG=OFF \
Expand All @@ -115,9 +116,12 @@ for abi in ${ABI_LIST}; do
-Wno-dev -Wno-policy \
-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=${abi} -DCMAKE_ANDROID_ARCH_ABI=${abi} \
-DANDROID_NDK=${NDK} \
-DCMAKE_C_FLAGS="-DJXL_HIGH_PRECISION=0" \
-DCMAKE_CXX_FLAGS="-DJXL_HIGH_PRECISION=0" \
-DSJPEG_ANDROID_NDK_PATH=${NDK} \
-DANDROID_PLATFORM=android-21 \
-DCMAKE_BUILD_TYPE=Release \
-DJPEGXL_ENABLE_SKCMS=true \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_ANDROID_STL_TYPE=c++_shared \
Expand All @@ -128,7 +132,6 @@ for abi in ${ABI_LIST}; do
-DTHREADS_PREFER_PTHREAD_FLAG=TRUE \
-DJPEGXL_ENABLE_TOOLS=OFF \
-DBUILD_TESTING=OFF \
-DJPEGXL_ENABLE_SKCMS=true \
-DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF \
-DJPEGXL_ENABLE_JPEGLI=OFF \
-DJPEGXL_ENABLE_SJPEG=OFF \
Expand All @@ -154,6 +157,11 @@ done

for abi in ${ABI_LIST}; do
mkdir -p "../jxlcoder/src/main/cpp/lib/${abi}"
cp -r "build-${abi}/*" "../jxlcoder/src/main/cpp/lib/${abi}/"
cp -r "build-${abi}/lib/libjxl_cms.so" "../jxlcoder/src/main/cpp/lib/${abi}/libjxl_cms.so"
cp -r "build-${abi}/lib/libjxl.so" "../jxlcoder/src/main/cpp/lib/${abi}/libjxl.so"
cp -r "build-${abi}/lib/libjxl_threads.so" "../jxlcoder/src/main/cpp/lib/${abi}/libjxl_threads.so"
cp -r "build-${abi}/third_party/brotli/libbrotlicommon.so" "../jxlcoder/src/main/cpp/lib/${abi}/libbrotlicommon.so"
cp -r "build-${abi}/third_party/brotli/libbrotlidec.so" "../jxlcoder/src/main/cpp/lib/${abi}/libbrotlidec.so"
cp -r "build-${abi}/third_party/brotli/libbrotlienc.so" "../jxlcoder/src/main/cpp/lib/${abi}/libbrotlienc.so"
echo "build-${abi}/* was successfully copied to ../jxlcoder/src/main/cpp/lib/${abi}/"
done
93 changes: 0 additions & 93 deletions deps.sh

This file was deleted.

Binary file modified jxlcoder/src/main/cpp/lib/arm64-v8a/libbrotlicommon.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/arm64-v8a/libbrotlidec.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/arm64-v8a/libbrotlienc.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/arm64-v8a/libjxl.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/arm64-v8a/libjxl_cms.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/arm64-v8a/libjxl_threads.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/arm64-v8a/libweaver.a
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/armeabi-v7a/libbrotlicommon.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/armeabi-v7a/libbrotlidec.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/armeabi-v7a/libbrotlienc.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/armeabi-v7a/libjxl.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/armeabi-v7a/libjxl_cms.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/armeabi-v7a/libjxl_threads.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/armeabi-v7a/libweaver.a
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86/libbrotlicommon.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86/libbrotlidec.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86/libbrotlienc.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86/libjxl.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86/libjxl_cms.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86/libjxl_threads.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86/libweaver.a
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86_64/libbrotlicommon.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86_64/libbrotlidec.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86_64/libbrotlienc.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86_64/libjxl.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86_64/libjxl_cms.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86_64/libjxl_threads.so
Binary file not shown.
Binary file modified jxlcoder/src/main/cpp/lib/x86_64/libweaver.a
Binary file not shown.
Loading