dlinyj: (Default)
[personal profile] dlinyj
В предыдущем посте я уже говорил о фреймбуфере. По сути это представляет собой память, где уложены байты (или слова по 16 или 24 бита). Каждый байт (слово) кодирует пиксель, его цвет. В прошивке к этой книжке, есть файл raw.BootImg.img весом ровно 480000 байт, что соответствует разрешению книжки 800х600 (умножтке 800 на 600 и получите это число).

Теперь задачка. Вот вам файл raw.BootImg.img


Задача: сконвертировать его в формат нормальной картинки png или bmp (жепег тоже канает). В идеале каким-то интересным способом (на си, питоне или каком другом языке программирования). Хотя вариант со стандартными линуксовыми коммандами тоже канает.

Я попробовал вчера это сделать, путём гуглежа нашёл этот способ http://www.cnx-software.com/2010/07/18/how-to-do-a-framebuffer-screenshot/ (это подсказка). Но поскольу перла я не знаю, то так и не смог сделать чтобы читался не два байта, а один. В результате первых опытов получил такое изображение


Первый блин комом


В общем, выкладывайте сюда получившиеся картинки и код, которым вы это сделали. Победитель получит от меня какую-нибудь интересную железку. :).
Рядовому программисту задача с гуглом должна решится за 5, максимум 10 минут.

З.Ы. Особый интерес представляет обратное преобразование из картинки в такой битовый образ.

Date: 2012-09-27 08:41 am (UTC)
From: [identity profile] maddev.livejournal.com
Минутное дело на PS: https://dl.dropbox.com/u/43849633/raw.png

Date: 2012-09-27 08:44 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Как сделал? И что есть PS?

Date: 2012-09-27 08:45 am (UTC)
From: [identity profile] maddev.livejournal.com
Если надо прям совсем из командной строки — кури ImageMagick. Он должен уметь.

Date: 2012-09-27 08:47 am (UTC)
From: [identity profile] maddev.livejournal.com
В Photoshop открыл как raw с указанием правильных параметров :)
Edited Date: 2012-09-27 08:48 am (UTC)

Date: 2012-09-27 08:48 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Да сие понятно. По большей части здесь исключительно спортивный интерес :)

Date: 2012-09-27 08:50 am (UTC)
From: [identity profile] maddev.livejournal.com
Перл, unpack/pack.

Date: 2012-09-27 08:55 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Мне кажется, но сие не спортивно и является мухлежом :))))

Date: 2012-09-27 09:00 am (UTC)
From: [identity profile] maddev.livejournal.com
Это только кажется. Просто с кодом всё понятно и так, но писать дольше (разбираться в заголовке BMP и прочее), чем использовать готовое решение. Я за решения ради решения :) Упражнения лучше оставить для нерешённых задач.

Date: 2012-09-27 09:14 am (UTC)
From: [identity profile] lapinmax.ya.ru (from livejournal.com)
echo -e "P5\n800 600\n255\n" >result.pgm
cat raw.img >>result.pgm
convert result.pgm result.png

http://tinypic.com/r/29fw16o/6

Для обратного преобразования

convert source.png result.pgm
и тут откусить заголовок, оставляя только буфер данных.
Edited Date: 2012-09-27 09:16 am (UTC)

Date: 2012-09-27 10:14 am (UTC)
From: [identity profile] tellepuz.livejournal.com
А проще всего на Ирфане. Там сам задаешь размер сторон и разрядность пикселя. Обратное превращение тоже возможно из любого формата в raw

Date: 2012-09-27 10:14 am (UTC)
From: [identity profile] tellepuz.livejournal.com
Image (http://tellepuz.livejournal.com/pics/catalog/442/10845)

Date: 2012-09-27 10:31 am (UTC)
From: [identity profile] dlinyj.livejournal.com
А что это хоть такое?

Date: 2012-09-27 10:37 am (UTC)
From: [identity profile] dlinyj.livejournal.com
По моему это гениально и просто! Спасибо!

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 08:49 pm
Powered by Dreamwidth Studios