hOtRush, как показывает опыт, даже 10k подключений классические решения на воркерах и пулах потоков просто не вывозят. Centrifugo справляется потому, что сделан на Go, а каналы Go эксплуатируют асинхронность.
hHup, ааа, теперь понятно, вы теоретик и изобретаете велосипед. Тогда используйте ImageIO чтобы считать файл в BufferedImage, получайте из него методом getRGB массив int и выполняйте необходимые вам преобразования.
hHup, если вы портируете в java код из другого языка, то придётся ориентироваться на требования этого кода. Если он ожидает трёхмерного байтового массива, преобразовывать изображение в трёхмерный байтовый массив. Если чего-то другого, преобразовывать во что-то другое. Хотя быстродействие таких поделок обычно оказывается крайне печальным.