Relax image compression so photos keep more detail

Images are downscaled against a 640px reference, which makes inSampleSize
halve the source one step further than the documented intent: the KDoc
says images should be sent at up to 1280x1280, but a 12000x3916 photo is
sent as 3006x979. Text in screenshots and detail in photos is lost at
that size.

Raise the reference to 1280. inSampleSize is a power of two, so this
moves each image one step up rather than to an exact size.
This commit is contained in:
hayaksi1
2026-08-17 11:33:41 +03:00
parent 1a3b89de12
commit 932a4d013c
2 changed files with 8 additions and 8 deletions
@@ -62,10 +62,10 @@ class AndroidMediaPreProcessor(
/**
* Used for calculating `inSampleSize` for bitmaps.
*
* *Note*: Ideally, this should result in images of up to (but not included) 1280x1280 being sent. However, images with very different width and height
* *Note*: Ideally, this should result in images of up to (but not included) 2560x2560 being sent. However, images with very different width and height
* values may surpass this limit. (i.e.: an image of `480x3000px` would have `inSampleSize=1` and be sent as is).
*/
private const val IMAGE_SCALE_REF_SIZE = 640
private const val IMAGE_SCALE_REF_SIZE = 1280
private val notCompressibleImageTypes = listOf(MimeTypes.Gif, MimeTypes.WebP)
}
@@ -208,10 +208,10 @@ class AndroidMediaPreProcessorTest : RobolectricTest() {
assertThat(info.thumbnailFile).isNotNull()
assertThat(info.imageInfo).isEqualTo(
ImageInfo(
height = 979,
width = 3006,
height = 1958,
width = 6012,
mimetype = MimeTypes.Jpeg,
size = 84_845,
size = 682_492,
ThumbnailInfo(height = 244, width = 751, mimetype = MimeTypes.Jpeg, size = 7_178),
thumbnailSource = null,
blurhash = "K07gBzX=j_D4xZjoaSe,s:"
@@ -233,10 +233,10 @@ class AndroidMediaPreProcessorTest : RobolectricTest() {
assertThat(info.thumbnailFile).isNull()
assertThat(info.imageInfo).isEqualTo(
ImageInfo(
height = 979,
width = 3_006,
height = 1_958,
width = 6_012,
mimetype = MimeTypes.Jpeg,
size = 84_845,
size = 682_492,
thumbnailInfo = null,
thumbnailSource = null,
blurhash = null,