Skip to content

Commit 11f9810

Browse files
authored
Merge pull request #59 from awxkee/dev
Resampling improvement and bugfixes
2 parents be9efef + c273e3c commit 11f9810

23 files changed

Lines changed: 898 additions & 784 deletions

app/src/main/java/com/radzivon/bartoshyk/avif/MainActivity.kt

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -120,42 +120,40 @@ class MainActivity : AppCompatActivity() {
120120
allFiles.addAll(allFiles2)
121121
allFiles.addAll(allFiles1)
122122
// allFiles = allFiles.filter { it.contains("test_img444.avif") }.toMutableList()
123-
for (i in 0 until 5 ) {
124-
for (file in allFiles) {
125-
try {
126-
Log.d("AVIF", "start processing $file")
127-
val buffer = this@MainActivity.assets.open(file).source().buffer()
128-
.readByteArray()
129-
130-
val size = coder.getSize(buffer)
131-
if (size != null) {
132-
val bitmap0 = coder.decodeSampled(
133-
buffer,
134-
if (size.width > 1800 || size.height > 1800) size.width / 4 else size.width,
135-
if (size.width > 1800 || size.height > 1800) size.height / 4 else size.height,
136-
PreferredColorConfig.RGBA_8888,
137-
ScaleMode.RESIZE
123+
for (file in allFiles) {
124+
try {
125+
Log.d("AVIF", "start processing $file")
126+
val buffer = this@MainActivity.assets.open(file).source().buffer()
127+
.readByteArray()
128+
129+
val size = coder.getSize(buffer)
130+
if (size != null) {
131+
val bitmap0 = coder.decodeSampled(
132+
buffer,
133+
if (size.width > 1800 || size.height > 1800) size.width / 4 else size.width,
134+
if (size.width > 1800 || size.height > 1800) size.height / 4 else size.height,
135+
PreferredColorConfig.RGBA_8888,
136+
ScaleMode.FIT
137+
)
138+
var start = System.currentTimeMillis()
139+
Log.d("AVIFFFF", "Decode time ${System.currentTimeMillis() - start}")
140+
141+
lifecycleScope.launch(Dispatchers.Main) {
142+
val imageView = BindingImageViewBinding.inflate(
143+
layoutInflater,
144+
binding.scrollViewContainer,
145+
false
138146
)
139-
var start = System.currentTimeMillis()
140-
Log.d("AVIFFFF", "Decode time ${System.currentTimeMillis() - start}")
141-
142-
lifecycleScope.launch(Dispatchers.Main) {
143-
val imageView = BindingImageViewBinding.inflate(
144-
layoutInflater,
145-
binding.scrollViewContainer,
146-
false
147-
)
148-
imageView.root.setImageBitmap(bitmap0)
149-
binding.scrollViewContainer.addView(imageView.root)
150-
}
151-
}
152-
} catch (e: Exception) {
153-
Log.d("AVIF", e.toString())
154-
if (e is FileNotFoundException || e is java.io.FileNotFoundException) {
155-
} else {
156-
throw e
147+
imageView.root.setImageBitmap(bitmap0)
148+
binding.scrollViewContainer.addView(imageView.root)
157149
}
158150
}
151+
} catch (e: Exception) {
152+
Log.d("AVIF", e.toString())
153+
if (e is FileNotFoundException || e is java.io.FileNotFoundException) {
154+
} else {
155+
throw e
156+
}
159157
}
160158
}
161159
}

avif-coder/src/main/cpp/AvifDecoderController.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ class AvifUniqueImage {
7777
};
7878

7979
AvifImageFrame AvifDecoderController::getFrame(uint32_t frame,
80-
uint32_t scaledWidth,
81-
uint32_t scaledHeight,
80+
int32_t scaledWidth,
81+
int32_t scaledHeight,
8282
PreferredColorConfig javaColorSpace,
8383
ScaleMode javaScaleMode,
8484
int scalingQuality) {

avif-coder/src/main/cpp/AvifDecoderController.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ class AvifDecoderController {
5454
}
5555

5656
AvifImageFrame getFrame(uint32_t frame,
57-
uint32_t scaledWidth,
58-
uint32_t scaledHeight,
57+
int32_t scaledWidth,
58+
int32_t scaledHeight,
5959
PreferredColorConfig javaColorSpace,
6060
ScaleMode javaScaleMode,
6161
int scalingQuality);

avif-coder/src/main/cpp/HeifImageDecoder.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@
3838
#include "avifweaver.h"
3939

4040
AvifImageFrame HeifImageDecoder::getFrame(std::vector<uint8_t> &srcBuffer,
41-
uint32_t scaledWidth,
42-
uint32_t scaledHeight,
41+
int32_t scaledWidth,
42+
int32_t scaledHeight,
4343
PreferredColorConfig javaColorSpace,
4444
ScaleMode javaScaleMode,
4545
int scalingQuality) {

avif-coder/src/main/cpp/HeifImageDecoder.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ class HeifImageDecoder {
5353
}
5454

5555
AvifImageFrame getFrame(std::vector<uint8_t> &srcBuffer,
56-
uint32_t scaledWidth,
57-
uint32_t scaledHeight,
56+
int32_t scaledWidth,
57+
int32_t scaledHeight,
5858
PreferredColorConfig javaColorSpace,
5959
ScaleMode javaScaleMode,
6060
int scalingQuality);

0 commit comments

Comments
 (0)