@@ -55,11 +55,11 @@ class SimpleImageTranscoder(private val resizingEnabled: Boolean, private val ma
55
55
BitmapFactory .decodeStream(encodedImage.inputStream, null , options)
56
56
} catch (oom: OutOfMemoryError ) {
57
57
FLog .e(TAG , " Out-Of-Memory during transcode" , oom)
58
- return ImageTranscodeResult (TranscodeStatus .TRANSCODING_ERROR )
58
+ return ImageTranscodeResult (TranscodeStatus .TRANSCODING_ERROR , encodedImage.imageFormat )
59
59
}
60
60
if (resizedBitmap == null ) {
61
61
FLog .e(TAG , " Couldn't decode the EncodedImage InputStream ! " )
62
- return ImageTranscodeResult (TranscodeStatus .TRANSCODING_ERROR )
62
+ return ImageTranscodeResult (TranscodeStatus .TRANSCODING_ERROR , encodedImage.imageFormat )
63
63
}
64
64
val transformationMatrix =
65
65
JpegTranscoderUtils .getTransformationMatrix(encodedImage, rotationOptions)
@@ -76,13 +76,15 @@ class SimpleImageTranscoder(private val resizingEnabled: Boolean, private val ma
76
76
transformationMatrix,
77
77
false )
78
78
}
79
- srcBitmap.compress(getOutputFormat(outputFormat), quality, outputStream)
79
+ val outputFormat = getOutputFormat(outputFormat)
80
+ srcBitmap.compress(outputFormat, quality, outputStream)
80
81
ImageTranscodeResult (
81
82
if (sampleSize > DownsampleUtil .DEFAULT_SAMPLE_SIZE ) TranscodeStatus .TRANSCODING_SUCCESS
82
- else TranscodeStatus .TRANSCODING_NO_RESIZING )
83
+ else TranscodeStatus .TRANSCODING_NO_RESIZING ,
84
+ convertCompressFormatToImageFormat(outputFormat))
83
85
} catch (oom: OutOfMemoryError ) {
84
86
FLog .e(TAG , " Out-Of-Memory during transcode" , oom)
85
- ImageTranscodeResult (TranscodeStatus .TRANSCODING_ERROR )
87
+ ImageTranscodeResult (TranscodeStatus .TRANSCODING_ERROR , encodedImage.imageFormat )
86
88
} finally {
87
89
srcBitmap.recycle()
88
90
resizedBitmap.recycle()
@@ -107,6 +109,8 @@ class SimpleImageTranscoder(private val resizingEnabled: Boolean, private val ma
107
109
override fun canTranscode (imageFormat : ImageFormat ): Boolean =
108
110
imageFormat == = DefaultImageFormats .HEIF || imageFormat == = DefaultImageFormats .JPEG
109
111
112
+ override fun canTransformAVIF (imageFormat : ImageFormat ): Boolean = false
113
+
110
114
override val identifier: String = " SimpleImageTranscoder"
111
115
112
116
private fun getSampleSize (
@@ -152,4 +156,14 @@ class SimpleImageTranscoder(private val resizingEnabled: Boolean, private val ma
152
156
}
153
157
}
154
158
}
159
+
160
+ /* * Maps an Android [CompressFormat] back to the corresponding [ImageFormat]. */
161
+ private fun convertCompressFormatToImageFormat (compressFormat : CompressFormat ): ImageFormat {
162
+ return when (compressFormat) {
163
+ CompressFormat .JPEG -> DefaultImageFormats .JPEG
164
+ CompressFormat .PNG -> DefaultImageFormats .PNG
165
+ CompressFormat .WEBP -> DefaultImageFormats .WEBP_SIMPLE
166
+ else -> DefaultImageFormats .JPEG
167
+ }
168
+ }
155
169
}
0 commit comments