Я пытаюсь преобразовать очень большой BMP-файл в png.Как я могу преобразовать большой BMP в png?
Я пишу приложение, чтобы сделать фрактальное изображение, и я хочу сделать изображение с очень высоким разрешением (например, ultrahd).
Я сохраню изображение растрового изображения прямо в файл с RandomAccessFile, поэтому я не буду выделять в память какой-либо объект Bitmap. Проблема заключается в том, чтобы преобразовать bitany-файл timeany в png.
Я нашел BitmapRegionDecoder, но это не полезно для моей проблемы.
Непростая конвертация изображения без полной загрузки данных. :(
Я думаю, что это хорошее решение может быть способ выглядеть следующим образом:. ConvertToPng (InputStream BitmapData, OutputStream pngStream)
Мой вопрос, как я могу преобразовать очень большой растровое изображение в формате PNG без иметь OutOfMemoryException
Aaand вопрос является ... –
вам повезло, потому Структура данных BMP не сжимается, и каждый пиксель имеет свои собственные данные int, так как вы упомянули, сначала откройте поток, вам нужно пропустить данные заголовка (я не знаю, что такое iso! поиск структуры). вам необходимо прочитать данные о пикселях в виде буфера, read-> process-> save и, наконец, собрать все их вместе. ты что-то пробовал ?! btw, хороший вопрос +1 –
Да, легко читать и писать растровое изображение, я не знаю, как его закодировать в png, используя буфер или поток байтов :( –