покажите пжта кто-нибудь работающий компиляемый исходник с работающей функцией iluScale.
а то не понятно в чем причина не работания.
А как мне напимер запгрузить имадж файл, если я не знаю его расположения, а у меня есть только указатель FILE *pFile?
Gri3ly
ilLoadF(IL_TYPE_UNKNOWN, pFile);
по поводу ТГА.
проблема решается очень просто.
int format = ilGetInteger(IL_IMAGE_FORMAT); if( format == IL_BGR || format == IL_BGRA) iluSwapColours( );
это на всякий случай если еще кто то не разобрался. просто я сегодня с этим столкнулся.
Axel_sv
ага спасибо учтем...:)
А мне OpenIL не понравился тем, что необоснованно применен подход со state, который содран с OpenGL. Ни к селу ни к городу. Для чего он в библиотеке, которая грузит/сохраняет изображения и что-то умеет делать с ними в памяти ? Зачем необходима операция, которая делает некий image "текущим" ? На мой взгляд - бред. Заврапить в объекты - гемор. Поискал, нашел FreeImage - более грамотно сделана + готовый объектный врапер. Так что рекомендую и на нее посмотреть.
Ezha
Ну а примерчик кода загрузки текстуры с использованием библиотеки FreeImage можешь привести? Вот мы и сравним.
пытаюсь вывести загруженную картинку вот так:
CPaintDC dc(this);
int nWidth,nHeight,nbpp;
nWidth = ilGetInteger(IL_IMAGE_WIDTH);
nHeight= ilGetInteger(IL_IMAGE_HEIGHT);
nbpp = ilGetInteger(IL_IMAGE_BITS_PER_PIXEL);
ILubyte*pImage = NULL;
pImage = ilGetData();
if(pImage)
{
for(int i=0;i<nWidth;i++)
{
for(int j=0;j<nHeight;j++)
{
int nRGB = pImage[i + nWidth*j + nbpp/8];
dc.SetPixel(i,j,nRGB);
}
}
}
после отрисовки картинка получается корявая, да и несоответсвует размеру, в чём может быть проблема?
А можно при помощи DevIl получиться сжатое DXTC изображение? Насколько я понял, она сама разжимает их в памяти, можно этого как - нибудь избежать?
Cosmas
Можно, можно, читай доки. Там есть такой pdf-чик с тутором, так вот в нём в самом конце это и описано.
OpenIL, действительно, всегда зачем-то разжимает DXT (в общем-то понятно, зачем). Тем не менее, можно получить несжатые DXT data.
Ezha
>>Поискал, нашел FreeImage - более грамотно сделана
Осторожно комрад, лицензия у FreeImage - GPL.
Это означает что используя данную библиотеку ты ОБЯЗАН публиковать свои исходники под GPL лицензией.
Любая нормальная библиотека имеет опосредованое отношение к твоим исходникам, соответственно подходящая лицензия для библиотеки - LGPL.
Соответственно FreeImage в САД.
Поможайте !
Не могу сохранить картинку в версии 1.6.7 , старый код работающий в 1.6.5 отказывается работать , или на сейве вылетает с ошибкой или сохраняет черное полотно .
Ктонить успешно сохранял ? можно код глянуть ?
LegioneR
Зато там хорошая ссылка на пример к статье :)
Мне кажеться...нужно писать свой загрузчик для текстур...или пользоваться Windows API. У винды есть загрузчик png например. В общем лишняя библиотека. Если самому лень то ее используй. У меня с проектом ничего постороннего не нужно...хотя еще не решил использовать OpenAL или сделать все через DirectSound...включая загрузку звука...OpenAL готов давно, так что может оставлю (лень). А текстуры гружу из свое го формата (простого)...в любом случае итоговые ресурсы будут в сжатом файле. Так что вот.
3DRaven
Windows API тоже лучше не использовать, лишняя зависимость, грузи все вручную. Ты же не лентяй, месяц-другой на загрузку png потратить вполне нормально.
Тема в архиве.