помогите разобраться с картинкой
От: Jurka Украина fantom.com.ua
Дата: 24.10.07 20:13
Оценка:
Добрый день!

У меня возникла проблема, суть такова:

Имеется картинка(GIF, JPEG, PNG) которая лежит в массиве.
Хотелось бы видеть ее как двумерный массив пикселей.

Мануалы по GDI и GDI+ читал, но ни чего кроме как записать содержимое в файл и от туда ее открыть в GDI+ Bitmap не вышло.

Подскажите что и как сделать или куда капать.



25.10.07 14:01: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: помогите разобраться с картинкой
От: chocho Россия  
Дата: 24.10.07 21:09
Оценка:
J>У меня возникла проблема, суть такова:

J>Имеется картинка(GIF, JPEG, PNG) которая лежит в массиве.

J>Хотелось бы видеть ее как двумерный массив пикселей.

Например, использовать WTL или ATL. Класс CImage...
С помощью
inline void* CImage::GetBits() throw()

получить внутреннее представление.
"Не морочьте мне голову. Полыхаев" ©
Re: помогите разобраться с картинкой
От: Mr.Cat  
Дата: 24.10.07 21:37
Оценка:
Здравствуйте, Jurka, Вы писали:
J>Мануалы по GDI и GDI+ читал, но ни чего кроме как записать содержимое в файл и от туда ее открыть в GDI+ Bitmap не вышло.

Если есть желание использовать GDI+ — глянь метод Bitmap.LockBits
Re[2]: помогите разобраться с картинкой
От: Jurka Украина fantom.com.ua
Дата: 25.10.07 08:08
Оценка:
Здравствуйте, chocho, Вы писали:

J>>У меня возникла проблема, суть такова:


J>>Имеется картинка(GIF, JPEG, PNG) которая лежит в массиве.

J>>Хотелось бы видеть ее как двумерный массив пикселей.

C>Например, использовать WTL или ATL. Класс CImage...

C>С помощью
C>
C>inline void* CImage::GetBits() throw()
C>

C>получить внутреннее представление.

Хорошо так я получу доступ к битам. А как мне создать объект CImage, ведь от тоже умеет подгружать картинку из файла или ресурса, а у меня массив. Не записывать же ее на диск чтоб потом считать. Есть ли способ ее из массива создать?
Re[3]: помогите разобраться с картинкой
От: Аноним  
Дата: 25.10.07 12:25
Оценка:
J>>>Имеется картинка(GIF, JPEG, PNG) которая лежит в массиве.
J>>>Хотелось бы видеть ее как двумерный массив пикселей.

C>>Например, использовать WTL или ATL. Класс CImage...

C>>С помощью
C>>
C>>inline void* CImage::GetBits() throw()
C>>

C>>получить внутреннее представление.

J>Хорошо так я получу доступ к битам. А как мне создать объект CImage, ведь от тоже умеет подгружать картинку из файла или ресурса, а у меня массив. Не записывать же ее на диск чтоб потом считать. Есть ли способ ее из массива создать?


1. Если нужно работать именно с различными GIF, JPEG, PNG, с разной глубиной цвета и т.д. и т.п., то разумно изначально использовать CImage как обёртку.
2. Если этот волшебный массив снисходит на тебя откуда-то, то в чём проблема его обойти двумя форами? Ты же знаешь width и height... CImage-то тоже тебе может вернуть только указатель на сырые данные (void*).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.