Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить биты  (Прочитано 5068 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mfcer__
Команда клуба

ru
Offline Offline

« : 14-10-2004 21:54 » 

открываю с помощью класса Bitmap какой - нибудь графический файл, напирмер bmp
Bitmap image = new Bitmap("image_file.bmp");
как мне получить доступ к битам изображения из объекта Bitmap?
Чтобы изменять цвет и прочее отдельного бита?
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 15-10-2004 02:52 » 

точно не знаю, но наверное через эту процедура битмапа -

DWORD CBitmap::GetBitmapBits(DWORD dwCount, LPVOID lpBits) const;

(BYTE*)lpBits - указывает, скорее всего, на массив байтов с битами , порядок - честно не знаю  Улыбаюсь
Записан

Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #2 : 15-10-2004 06:34 » 

нашел сам, но только не получая массива байт, что плохо  Жаль
использую SetPixel , GetPixel ,а чтобы получить именно весь массив не нашел
функции типа GetBitmapBits там вроде нет
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 15-10-2004 15:45 » 

Mfcer__, а попробуй открой файл просто как двоичный , что то вроде

CString name="...";
CFile file(name, CFile::modeReadWrite | CFile::typeBinary);

правда не из битмапа...
Записан

Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #4 : 15-10-2004 17:02 » 

в смсле мне нужно не получить файл как поток байт, а получить просто байты самого рисунка, то есть жвумерный массив где каждое значение  - цвет точки
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 15-10-2004 19:33 » 

Mfcer__, так скопируй из файла в массив типа BYTE , созданный в памяти
Записан

Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #6 : 16-10-2004 06:12 » 

дело в том что скопируется весь файл с Header'ами и прочим, ведь bitmap имеет свой формат

нашел как решить проблему - с помощью LockBits и UnlockBits у класса Bitmap, котороые вернут BitmapData, в котором уже содержится то что нужно
только работать придется с указателями в unsafe режиме  :?
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines