Java: сделать изображение низкого качества

В программе 'Teamviewer' можно изменить качество изображений. Похоже, что изображение идет от 32-битного до 16-битного (или других значений, например, в настройках устройства экрана в Windows). Изображение действительно меньше, потому что вы замечаете, что скорость совместного использования рабочего стола становится выше. Я не хочу что-то вроде: «уменьшить масштаб, отправить, а затем увеличить».

Теперь мой вопрос: Можно ли сделать некачественное изображение.

Спасибо


person Martijn Courteaux    schedule 21.09.2009    source источник


Ответы (4)


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

Google нашел это: Настройка качества сжатия изображений JPEG при сохранении изображений на Java

person Tom Neyland    schedule 21.09.2009

У вас есть четыре варианта сжатия с потерями:

  • уменьшить пространственное разрешение (размер)
  • уменьшить битовую глубину
  • сжать в другом домене (JPEG)
  • сочетание этих

И вы, вероятно, получите наилучшее усиление с JPEG для насыщенных изображений, таких как фотографии, и с уменьшением битовой глубины (даже до использования 8-битной или менее палитры) для других с меньшим изменением цветов. Обратите внимание, что уменьшение битовой глубины наиболее эффективно в сочетании с последующим сжатием без потерь, таким как кодирование длины цикла (знаете ли вы, что даже jpeg использует это?)

person ypnos    schedule 21.09.2009

Вы можете использовать конвертеры изображений для этой цели. Когда пользователь загружает файл, он отправляется конвертеру, который выполняет свою работу (в соответствии с заданными настройками). Однако я думаю, вам понадобится доступ для запуска приложений на сервере.

person Jonas B    schedule 21.09.2009

ypnos уже упоминал уменьшение разрядности. Прочитав ваш вопрос, я сразу же подумал о дизеринге, который лучше сохранит изображение, если вы уменьшите размер цветового пространства. Вы можете легко найти реализации алгоритма Флойда-Стейнберга в сети.

person wds    schedule 22.09.2009