Как сделать структуру для преобразования файлов из одного файла в другой для различных декодировок в Java? - PullRequest
0 голосов
/ 29 октября 2018

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

Моей первоначальной идеей была структура, похожая на:

    public interface FileWrapper{

        //example: reads a row from the ssh file using RandomAccessfile 
        //         and decodes/reorders into pixel list
        public List<Pixel> getImageRow(int rowNr);
    }

Где getImageRow () уже декодирует поток построчно.

Строка за строкой будет полезна, поскольку bmp записывает изображение вверх ногами, и поэтому я могу использовать его для записи потока в bmp следующим образом:

for(int rowNr = imgHeight;rowNr > 0; rowNr --){
    byte[] row = convertToRGBArray(getImageRow(rowNr));
    bufferedOutputStream.write(row);
}

Проблема в некоторых типах кодирования: данные скремблированы между 2 или более строками. Получение и декодирование / переупорядочивание x строк, а затем выбрасывание других неиспользуемых строк при вызове getImageRow () кажется действительно расточительным и неэффективным.

С другой стороны, хранение всего изображения в памяти также не является идеальным.

Есть ли какие-то корректировки, которые я мог бы внести, или другая общая структура для учета этих разных типов кодирования?

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