SetRGB почемуто синяя картинка
Пробую в
image.SetRGB() послать прочитанную в массив int[] строку пикселов (получается длина массива 3*ширину картинки). но вместо белого отображается синий цвет. Я даже в цикле просто забивал массив значенийми 255, всё равно синий! Помогите пожалуйста, что я не так делаю.
Пробую в
image.SetRGB() послать прочитанную в массив int[] строку пикселов (получается длина массива 3*ширину картинки). но вместо белого отображается синий цвет. Я даже в цикле просто забивал массив значенийми 255, всё равно синий! Помогите пожалуйста, что я не так делаю.
Полный код процессинга картинки в студию. И перед этим объявление в разделе прочитай ;) внимательно!
Решение парсить вручную BMP файл выглядит странновато, учитывая, что для этого есть ImageIO/Image Processing API.
Еще - зачем ты смотришь первые два байта файла, чтобы удостовериться, что это именно .bmp файл?
[highlight=java]selectedFile.getAbsolutePath(),"r"[/highlight] указывает, что
файл выбирается пользователем из диалога. В таком случае, просто поставь в этом диалоге фильтр на расширения файлов.
Написать парсер графических файлов - твоя самоцель? Если да - то изучай спецификации графических форматов. Если нет - используй средства javax.imageio.*.
Читаю первые 2 байта чтобы удостовериться что это бмп) и размер также читаю и сравниваю с размером файла.
В этом кусочке я просто по строками снизу вверх в image заношу данные пикселов.
А фильтр стоит, но всё бывает. Лишняя проверка не помешает.
Читаю первые 2 байта чтобы удостовериться что это бмп) и размер также читаю и сравниваю с размером файла.
В этом кусочке я просто по строками снизу вверх в image заношу данные пикселов.
Спасибо, техническая часть теперь в целом понятна. Но непонятен usecase все равно.
Как ты это представляешь? Есть файл в 200 метров, и есть машина с 64 метрами (я там понял, памяти резко не хватает даже с учетом спопа?)
И вот ты читаешь какую-то часть картинки из файла, ок. Ты ее рендерить дальше собираешься в некотором окне, ограниченном viewport? И потом, когда юзер хочет скроллить картинку, ты динамически определяешь, какую часть картинки тебе надо, загружашь ее в память, процессишь и рендеришь (возможно, с кешированием и т.п.). Я правильно понял?
[quote=topicstarter]
А фильтр стоит, но всё бывает. Лишняя проверка не помешает.[/QUOTE]
Ну, если так, то то я могу создать сам файл, внести в него две эти магические буквы вначале, и переименовать в BMP... Хотя, можно проверять и сходу, чтобы сразу отсечь тупые ошибки.
Да, гдето так. но пока вот.. проблема в начале в самом) что синее. возможно както связано с альфа каналом.. в BMP его нет, а в джаве вроде есть..