уменьшить размер изображения с указанным соотношением - Android - PullRequest
0 голосов
/ 03 июня 2018

Я хочу разработать сжатый размер для изображений по факторам.

после того, как я его погуглил, я обнаружил, что могу использовать compress функцию в растровом изображении как следующие

myImage.compress(Bitmap.CompressFormat.JPEG, compressRatio, out);

возможные значениядля compressRatio - это 100, 50 и 25

, так что в случае 100 сохраненное изображение в оригинальном размере говорит (1 МБ), в случае 50 сохранить размер 0,5 МБ и 25 сохранить в0.25MB размер изображения.но после того, как я передам значения, я получу разные значения, например

для 100, размер - около 1,4 М, для 50 - около 250 К, для 25 - около 150 К, правильное масштабирование должно бытьесли для 100 размер составляет около 1,4 М, для 50 - около 700 КБ, для 25 - около 300 К

Может ли кто-нибудь помочь мне понять, почему он не работает должным образом?

==========================================================

Редактировать 1 : так как CommonsWare упомянул, что это не может быть достигнуто compress(), поэтому есть какие-либо предложения, чтобы сделатьчто мне нужно на самом деле

Подсказка: я не хочу изменять ширину и высоту, мне нужно сохранить их как исходные размеры изображения, но в разных размерах.

1 Ответ

0 голосов
/ 03 июня 2018

уменьшить размер изображения с указанным соотношением - android

Это не имеет ничего общего с методом compress() для Bitmap.Учитывая существующий Bitmap, вы можете вызвать createScaledBitmap(), чтобы создать масштабированное растровое изображение.

, чтобы в случае 100 сохраненное изображение в оригинальном размере показывало (1 МБ)в случае 50 сохранить размер 0,5 МБ и 25 сохранить в размере изображения 0,25 МБ.

Это не то, как работает параметр коэффициента сжатия до compress().Точное значение этого значения зависит от формата изображения.Для JPEG он контролирует степень сжатия с потерями, но это не линейный масштаб.Например, значение 0 не позволяет сохранить изображение в виде файла нулевого байта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...