| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 текстуру из получившегося изображения, радуемся результату и новым знаниям |
| Автор: Alexeis 19.3.2009, 10:06 |
| nebaz, опенгл в этом действительно не помощник, но можно обойтись и без ручного разбора, используя Win Api функции LoadImage, для загрузки изображения и GetDibBits для получения доступа матрице пикселов. Соответствующие примеры есть на форуме, поищите по этим 2м словам. |