Сжатие изображения Java - PullRequest
       1

Сжатие изображения Java

1 голос
/ 12 апреля 2011

Я хочу передать изображения через сетевой сокет (java.net). Где я могу найти образец кода для

сжатие буферизованных изображений в java. Скажем, например, если размер моего файла изображения составляет около 200 КБ, я хочу

это должно быть преобразовано в atleat 100kb .. Так что передача будет немного более быстрой ..

Спасибо ..

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

Насколько мне известно, наилучшее сжатие изображений без потерь выполняется с помощью PNG, который могут записывать библиотеки изображений в Java.

Если вам нужны изображения меньшего размера, чем это, вам необходимо использовать сжатие с потерями.Простой способ сделать это с JPEG, где вы можете уменьшить качество, пока не получите желаемую скорость.

Вы также можете уменьшить масштаб изображения до 1/2 или 1/3 от исходного размераполучая гораздо меньшую картину и передавая ее, и улучшая ее на другом конце.Это можно будет использовать для быстрой передачи, а затем вы можете передать полное изображение, когда движения успокоятся.

1 голос
/ 12 апреля 2011

Способ сделать это действительно зависит от того, что вы хотите сделать.

Если вы хотите перенести изображение как потерю качества, вы можете сохранить его в JPEG (в потоке памяти).перенесите эти байтовые данные и снова прочитайте изображение на другой стороне.Типичное изображение размером 200 КБ можно уменьшить до 20-50 КБ с хорошим результирующим качеством.

Чтение API ввода-вывода Java Image может помочь в этом.Абсолютно хотите сохранить исходные байты или хотите более общее решение, просто используйте некоторую библиотеку сжатия, такую ​​как Gzip, для сжатия / распаковки ваших данных.Для начала вы можете использовать Сжатие и распаковка данных с использованием Java API в качестве хорошего начала.

0 голосов
/ 12 апреля 2011

Вы можете использовать ImageIO.write() для потоковой передачи BufferedImage в поддерживаемом сжатом формате изображения, например jpg (сжатие с потерями) или png (сжатие без потерь).

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