Как сжать GIF изображение перед загрузкой на сервер в android? - PullRequest
1 голос
/ 28 мая 2020

как сжать изображение в формате GIF перед загрузкой на сервер? Я пробовал некоторые android библиотеки для сжатия изображения в формате GIF, но он конвертировал его в изображение PNG. есть ли способ сжать изображение в формате gif?

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

GIF - это формат сжатия изображений без потерь : он настроен на точное воспроизведение изображения. Как следствие, отсутствует ползунок «качество изображения» (как в кодировщиках JPEG); хотя GIF, вероятно, будет намного меньше, чем несжатый формат (например, многие RAW камеры или стандартные параметры TIFF), существует ограничение на размер go.

Кроме того, вы должны знать, что GIF ограничен 8 битами на пиксель (поэтому лучше всего подходит для штриховых рисунков, а не для изображений, похожих на фотографии). Если исходное изображение состоит из 24 бита, его необходимо добавить в цветовую палитру из 256 элементов. Итак, хотя формат GIF сам по себе не содержит потерь, обработка изображений, необходимая для его использования в первую очередь, может быть с потерями.

Есть ряд вещей, которые вы можете сделать, чтобы уменьшить размер вашего файла изображения:

  • Вы можете выбрать формат с потерями (например, JPEG), который обеспечит гораздо большее сжатие. Обратите внимание, что JPEG хорошо работает с изображениями, похожими на фотографии, но не так хорошо с штриховыми рисунками. Кроме того, (хотя ваш вопрос явно отклоняет его) PNG может быть разумным вариантом, поскольку он (без потерь) поддерживает изображения с разрешением 24 бит на пиксель.
  • Как упоминалось в комментарии, вы можете попробовать уменьшить разрешение вашего изображения, и отправка сокращенной версии. Если вы не можете создать изображение меньшего размера для начала, изменение размера изображения обычно хорошо работает с изображениями, похожими на фотографии, и доступны нелинейные фильтры изменения размера, специально предназначенные для обработки штриховых рисунков.
  • разрешение GIF является обязательным для вашего приложения, вы можете создать изображение, которое более сжимается в формате GIF. GIF сжимает solid цветовых блоков очень хорошо, но хуже работает с размытыми или зашумленными изображениями (например, вы можете получить от преобразования изображения с 24 битами на пиксель в формат GIF).

Поскольку вы не предоставили никакой информации о ваших требованиях (какое изображение у вас есть, где оно у вас и для чего оно вам нужно), трудно дать конкретный c совет.

Однако, есть большая вероятность, что ваш GIF имеет гораздо большее разрешение, чем требуется для вашего конкретного приложения (что приводит к варианту № 2).

0 голосов
/ 28 мая 2020

я использую растровое изображение в своих проектах.

Растровое изображение

Пример кода:

 ImageView carView = (ImageView) v.findViewById(R.id.imagen_cr7);

                        byte[] decodedString = Base64.decode(picture, Base64.NO_WRAP);
                        InputStream input=new ByteArrayInputStream(decodedString);
                        Bitmap ext_pic = BitmapFactory.decodeStream(input);
                        carView.setImageBitmap(ext_pic);
...