السلام عليكم ورحمة الله وبركاته
كنت عايز اعرف ازاي بعمل load الي png في opengl
عشان دورت كتير ومش لاقي حاجه واضحه فيا ريت الرد كمان يبقي بمثال يعني الي يعملها يرفع الكود بتاعها ولو في اي library يا ريت يقول عليها
والسلام عليكم ورحمة الله وبركاته
السلام عليكم ورحمة الله وبركاته
كنت عايز اعرف ازاي بعمل load الي png في opengl
عشان دورت كتير ومش لاقي حاجه واضحه فيا ريت الرد كمان يبقي بمثال يعني الي يعملها يرفع الكود بتاعها ولو في اي library يا ريت يقول عليها
والسلام عليكم ورحمة الله وبركاته
تم تعديل هذه المشاركة بواسطة karimcplus في 15 أبريل 2011 في 01:02
ال opengl يرسم bitmap السؤال يجب ان يكون كيف تحصل على ال bitmap لملف png
جميل بس بصيغه تانيه انا يهمني الكود بتاعها مش هتفرق انا اهم حاجه احط png
الأسهل أن تتسخدم مكتبة جاهزة لهذا الغرض :
http://openil.sourceforge.net/
هذا موضوع يحتوي على مثال لتحميل صورة ( لا أذكر نوعها ) ، لكن يمكنك تحميل أي صورة بنفس الطريقة :
http://www.arabteam2...howtopic=130647
وتحديداً هذا المثال :
http://www.arabteam2...attach_id=46971
تستطيع أن تستخلص منه المطلوب ( المثال يحوي أموراً قد لا تحتاجها مثل إزالة لون معين من الصورة ) ..
void CreateTexture(char *imageName )
{
// Load BMP (RGB) Image
ilInit();
iluInit();
ilutRenderer(ILUT_WIN32);
ilGenImages(1, ℑ);
ilBindImage(image);
ilLoadImage(imageName);
ilConvertImage(IL_RGBA , IL_UNSIGNED_BYTE);
int size =ilGetInteger(IL_IMAGE_SIZE_OF_DATA);
unsigned char * data = new unsigned char [size];
unsigned char * newData= new unsigned char[size] ;
data= ilGetData(); // get the Original image Data ;
// Copy All data From RGB image to RGBA image
for(int i=0;i<size ;i+=4 )
{
// Copy R byte && G byte && B byte
newData = data;
newData[i+1]=data[i+1];
newData[i+2]= data[i+2];
// Now if(image->data (rgb) == Color Key) then set Alpha channel to Zero
if( data == r &&
data[i+1] == g &&
data[i+2] == b )
newData[i+3] = 0 ;// alpha channel
else
newData[i+3] = 255 ;
}
// ok .. now we have new Data ( with Alpha Channel )
glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_2D,id);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D,0, ilGetInteger(IL_IMAGE_BPP), ilGetInteger(IL_IMAGE_WIDTH), ilGetInteger(IL_IMAGE_HEIGHT),0, ilGetInteger(IL_IMAGE_FORMAT), GL_UNSIGNED_BYTE,newData);
ilDeleteImages(1,ℑ);
}تستدعي الدالة بهذا الشكل :
CreateTexture("ColorKey.bmp");اكتب اسم الصورة الذي تريد ، ولا تنسى تثبيت المكتبة OpenIL طبعاً .
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…