Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертация из BMP в PDF(16bpp) 
:(
    Опции темы
frutta007
Дата 9.6.2008, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 9.6.2008

Репутация: нет
Всего: нет



При конвертации из BMP в PDF(картинка имеет 16bpp), без компрессии, stream(в PDF) заполнен нулями..В следствии чего на картинке появляется сероватый фон..Как это можно исправить..Может неправильно подсчитанно смещение?

вот мой подсчет сдвигов:

Код

WORD imData = imageData[offSet] + (imageData[offSet+1]<<8);
BYTE R = (imData>>10)&0x1f; 
BYTE G = (imData>>5)&0x3f;
BYTE B = (((imData) & 0x1f) * 8);
buf[bufPos++] = R<<3;
buf[bufPos++] = G<<3;
buf[bufPos++] = B;
offSet+=2; 


Это сообщение отредактировал(а) frutta007 - 10.6.2008, 15:08
PM MAIL   Вверх
bsa
Дата 9.6.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



RRRRRGGG GGGBBBBB
вот и считай:
Код
red = (color >> 8) & 0xF8;
green = (color >> 3) & 0xFC
blue = (color << 3) & 0xF8;


Это сообщение отредактировал(а) bsa - 10.6.2008, 19:06
PM   Вверх
frutta007
Дата 10.6.2008, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 9.6.2008

Репутация: нет
Всего: нет



Этот подсчет получается на случай 565, а мне нужен 555, ты не мог бы пересчитать плиззз!!!!

Это сообщение отредактировал(а) frutta007 - 10.6.2008, 16:03
PM MAIL   Вверх
bsa
Дата 10.6.2008, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



PM   Вверх
frutta007
Дата 10.6.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 9.6.2008

Репутация: нет
Всего: нет



Пробовал...то синий цвет преобладает , то ваще черный квадрат Малевича на выходе!!
Тот кусок который я выложил -самое близкое к результату...остается как-будто серая дымка на заднем плане...Перепробовал уже все...Щас в тупике!!!
PM MAIL   Вверх
bsa
Дата 10.6.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



frutta007, у тебя там 0x3F (6 бит), а надо 0x1F (5 бит). Именно поэтому я и решил, что у тебя 565

Это сообщение отредактировал(а) bsa - 10.6.2008, 19:06
PM   Вверх
frutta007
Дата 16.6.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 9.6.2008

Репутация: нет
Всего: нет



Спасибо огромное ...помогло...но все-таки MSDN врет!!!!там не все так просто...он из белого делал серый!!!
PM MAIL   Вверх
bsa
Дата 16.6.2008, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



frutta007, знаешь что такое серый? Это когда у тебя все три компонента равны между собой, но не равны 255.
Чтобы этого избежать, тебе надо при преобразовании еще доумножать на некоторый коэффициент: blue = 255 * ((color << 3) & 0xF8) / 0xF8
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1151 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.