Java - передача BufferedImage через TCP-сокет - PullRequest
1 голос
/ 09 января 2012

Я не очень хорош в Java, и мне нужно отправить BufferedImage через сокет TCP.Мне уже удалось установить соединение (и отправить строки), но я не мог точно определить, какой Writer мне следует использовать для отправки и восстановления BufferedImage.

Ответы [ 2 ]

4 голосов
/ 09 января 2012

Вам необходимо ImageIO.write, чтобы сериализовать изображение как поток байтов, используя некоторый формат (PNG, JPG и т.Трудность здесь в том, что вы не знаете размер потока впереди.Простое решение - сохранить весь контент в байтовый массив в памяти (используйте для него ByteArrayOutputStream) и затем отправить его.Или, если он не помещается в память, вы должны сделать что-то умное (сохранить его во временный файл, или использовать какой-то фрагментный протокол или отправить уникальную метку-терминатор).

0 голосов
/ 09 января 2012

См. ImageIO класс , который содержит методы для чтения и записи BufferedImage с и RenderedImage с / из различных потоков ввода / вывода.

...