Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Загрузка текстуры / OpenGL


Автор: nebaz 11.2.2009, 15:15
Можно ли как-нибудь средствами OpenGL прочитать графический чёрно-белый файл по пиксельно??т.е. нужно узнать градацию [от 0 до 255] каждого пикселя и записать всё это дело в массив!

Автор: AnLun 11.2.2009, 19:22
За чем тебе при этом OpenGL? На сколько я понимаю, OpenGL в чистом виде без доп. библиотек не имеет задачи открывать такие файлы.
Если ты хочешь открыть BMP, то это очень просто, на форуме уже описывалось как...
С остальными форматами, скорее всего, придется пользоваться сторонними библиотеками, но не как ни Open Graphics Library...

Автор: nebaz 18.3.2009, 12:18
Ну вот вставку изображения я сделал так:

    AUX_RGBImageRec* image;
    image = auxDIBImageLoad("1.bmp");
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
    glDrawPixels(image->sizeX, image->sizeY, GL_RGB, GL_UNSIGNED_BYTE, image->data);

А как прочитать градацию каждого пикселя я так и не разобрался :(
Нужно прочитать каждый пиксель, изменить его немного и снова построить, уже изменённое, изображение!

Автор: Rickert 19.3.2009, 09:27
nebaz, идём на wotsit.org, в поиске "BMP" - получаем ссылки на описание формата файла. Пишем загрузку файла, получаем массив пикселей, меняем как нам надо, создаём OpenGL текстуру из получившегося изображения, радуемся результату и новым знаниям smile 

Автор: Alexeis 19.3.2009, 10:06
nebaz, опенгл в этом действительно не помощник, но можно обойтись и без ручного разбора, используя Win Api функции LoadImage, для загрузки изображения и GetDibBits для получения доступа матрице пикселов. Соответствующие примеры есть на форуме, поищите по этим 2м словам.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)