Как нарисовать 16 цветное изображение (pocketbook 360)?

 
Libroom Forum IndexPocketBookPocketBook Free
AuthorMessage

ldo2
Новенький участник форума

Новенький участник форума



Joined: 01 Jan 2010
Posts: 1



Posted: 01.01.2010 23:53    

У меня возник такой вопрос, как нарисовать с помощью inkview 16 цветное изображение, и как такое изображение подготовить.

Я пробовал использовать bmp с индексированными цветами 0x000000, 0x111111, 0x222222, ..., 0xffffff и 0x808040 (для прозрачных областей). При использовании pbres или при загрузке изображения с помощью LoadBitmap при отрисовке через DrawBitmap получается 4-х цветное изображение.

Однако, если рисовать (например с помощью DrawPixel), то получаются все 16 градаций серого. Правда цвета распределены по шкале не равномерно (не сильно отличаются 4 почти белых, ~3 серых), поэтому есть второй вопрос, где найти реальную палитру, чтобы под нее подгонять картинки?
 
View user's profile ^

RedUser
Член клуба The eBook

Член клуба The eBook



Joined: 22 Jan 2009
Posts: 569


Location: Мурманск

Posted: 02.01.2010 00:34    

Наверное надо использовать FineUpdate();
Хотя это чисто теоретически - сам не пробовал.
_________________
PocketBook 301+ ‹14.2› | PocketBook 360 ‹14.2›
Ищется работа. Мурманск
 
View user's profile ^

Tyfreak6
Продвинутый участник форума

Продвинутый участник форума



Joined: 14 Jan 2010
Posts: 73



Posted: 14.01.2010 19:53    

DrawBitmap выводит только в 4-х цветах, и pbres сохраняет тоже только 4 цвета. Мне пришлось писать свою функцию, которая бы нормально попиксельно выводила картинки в 16 цветов, через DrawPixel.
Палитру преобразовывал так (если исходник RGB, R=B=G, так как мы предварительно сделали картинку в тонах серого) (назовем исходный цвет X, он у нас от 0 до FF, и выходящий цвет для покебука Y, который от 0 до F):
если X находится между 0x..+0x11/2 и 0x..+0x11+0x11/2, то мы присваиваем цвету 0x.+1
Результат понравился не особо, думаю теперь преобразование сдвинуть в сторону черных цветов, чтобы визуально поднять контрастность
 
View user's profile ^

JAW
Член клуба The eBook

Член клуба The eBook



Joined: 27 Sep 2004
Posts: 22894


Location: Северная столица

Posted: 14.01.2010 22:04    

В PhotoShop
Image -> Mode -> Grayscale
Save for Web & Device, Выбираешь там GIF, или PNG
Задаёшь Indexed Color, задаёшь 16 цветов.
Включаешь Diphering, например Diffusion

Вот чем потом в BMP сконвертить, чтобы всё сохранилось не знаю, не пробовал.

Есть ещё всякие бесплатные утилиты, но это я не готов обсуждать, нужно покопать... Их использование более оптимально.
_________________
PocketBook: 301+,602(2.2.1a),701, A7, 701 IQ, A7, U7.
Fly: IQ 235
 
View user's profile ^

Tyfreak6
Продвинутый участник форума

Продвинутый участник форума



Joined: 14 Jan 2010
Posts: 73



Posted: 17.01.2010 07:54    

Diffusion и 16 цветов - это хорошо, но они под стандартную палитру монитора. А я пытаюсь найти свою палитру, которая бы наиболее подходила для отрисовки картинок на экране покетбука. Пока безуспешно. На самом деле можно изначально подготовить палитру изображения в фотошопе для покетбука. Color Table взять какой-нибудь. Я вот считаю, что градации белого на покетбуке различаются значительно сильнее, чем градации черного. Значит, надо цвета 0x0..0x3 подвинуть вверх при преобразовании, сделать их серее, иначе потеряются полутона, близкие к черному. Тут еще думать и думать надо =)
и да - pbres все равно сохраняет в 4 цвета, тут уж ничего не поделаешь
 
View user's profile ^

MuadDib
Кандидат в члены клуба The eBook

Кандидат в члены клуба The eBook



Joined: 19 Dec 2008
Posts: 338


Location: Молдова

Posted: 17.01.2010 14:10    

Tyfreak6 wrote:
pbres все равно сохраняет в 4 цвета, тут уж ничего не поделаешь

В 8 он может сохранять
"Упаковщик не делает никакого преобразования картинок (дизеринг и т.п.), поэтому Вам нужно подготовить картинки в готовом виде. Новые контроллеры Epson поддерживают до 8 градаций серого, Вы можете некоторые или все картинки сконвертировать также в 8 градаций, указав конвертеру путь к ним (в примерах – папка 4bpp)."

Но разве pbres не для создания тем только? А 16 оттенков книжки выводят только в режиме фото и программно, через два прохода же.
 
View user's profile ^

Tyfreak6
Продвинутый участник форума

Продвинутый участник форума



Joined: 14 Jan 2010
Posts: 73



Posted: 17.01.2010 17:56    

что бы там ни писали, pbres сохраняет только 4 цвета, я проверил специально. Для того, чтобы убедиться в этом, надо создать картинку 8х8 256цветов (или 8х8 16 цветов), конвертнуть ее с помощью pbres в .с и посмотреть на получившийся код. По идее, если бы там было 16 цветов, то итоговая таблица изображения занимала бы 32 байта (против 8х8=64 байт исходных при 256 цветах) (1 байт на две точки, 4 бита на цвет, т.е. как раз 16 цветов). Однако мы имеем 16 байт, в два раза меньше, и соответственно 1 байт на 4 точки, 2 бита на цвет, 4 цвета.

Добавлено спустя 20 минут 49 секунд:

Для 8 же цветов мы бы имели 3 байта на 8 точек (3 бита на цвет, 8 цветов), соответственно 24 байта занимала бы итоговая таблица изображения, а никак не 16 байт.
 
View user's profile ^
Libroom Forum IndexPocketBookPocketBook FreeAll times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© Libroom, 2021