Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

1

17.03.2009, 14:16

Probleme mit Devil(Openil)

Hab da ein problem mit devil ,wenn ich bestimmte bildformate laden
werden diese auf den kopfgestellt, eben angezeigt.
Und wenn ich es Speicher egal in welchen format werden die bilder auch auf den kopfgestellt gespeichert.
z.b. pngs kann ich problemlos laden ,bei bmp oder tga steht dann die Grafik auf den kopf.
Laden der Bilder:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
FILE *File = NULL;
bool status = true;
File = fopen(filename,"r");
if (File){
    fclose(File);
}else{
    printf(buffer,"No such file or directory: %s \n",filename);
    status = false;
}

GLuint image;
GLubyte pixels[4];
memset(pixels,0,4);

ilGenImages(1,&image);
ilBindImage(image);
ilTexImage(1,1,1,4,IL_RGBA,IL_UNSIGNED_BYTE,pixels);

if (!ilLoadImage(filename)){
   ilDeleteImages(1,&image);
   status = false;
}
if (!ilConvertImage(IL_RGBA,IL_UNSIGNED_BYTE)){
    ilDeleteImages(1,&image);
    status = false;
}

if (status){
bitmapWidth = ilGetInteger(IL_IMAGE_WIDTH);
bitmapHeight = ilGetInteger(IL_IMAGE_HEIGHT);

const uint bitmapsize = 
bitmapWidth*bitmapHeight*ilGetInteger(IL_IMAGE_BYTES_PER_PIXEL);

if(bitmapPixels)
   delete[] bitmapPixels;
bitmapPixels = new ubyte[bitmapsize];
ubyte* copydata = ilGetData();
ubyte* dstpixels = this->pixels;
if (copydata){
   for(uint i = 0;i < bitmapsize;i++,copydata++,dstpixels++)
    *(dstpixels) = *(copydata);
   }
}
ilDeleteImages(1,&image);


Anzeigen der Bilder:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
glOrtho(0,screenwidth,screenheight,0,-1000, 1000); 
//...

glBindTexture(GL_TEXTURE_2D, texture);      glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,bitmapWidth,bitmapHeight,0,GL_RGBA,GL_UNSIGNED_BYTE,bitmapPixels);

glTexCoord2f(cx,cy);
glVertex3f(0.0f, 0.0f,0.0f);

glTexCoord2f(width,0.0f);
glVertex3f(1.0f,0.0f,0.0f);

glTexCoord2f(width,height);
glVertex3f(1.0f,1.0f,0.0f);

glTexCoord2f(0,height);
glVertex3f(0.0f,1.0f,0.0f);


Speichern:

C-/C++-Quelltext

1
2
3
4
5
6
    GLuint image;
    ilGenImages(1,&image);
    ilBindImage(image);
ilTexImage(bitmapWidth,bitmapHeight,1,4,IL_RGBA,IL_UNSIGNED_BYTE,bitmapPixels);
    ilSaveImage(filename);
    ilDeleteImages(1,&image);

neido

Treue Seele

Beiträge: 225

Wohnort: Wien

  • Private Nachricht senden

2

03.04.2009, 20:34

Guten Abend.

Ich habe dasselbe Problem mit Devil bei ALLEN Images die ich laden.
Bei machen .pngs, die alle ziemlich große Maße haben (über 100*1000), werden die Bilder zudem verschwommen/Unscharf geladen.

Ich bin gerade noch beim Suchen nach einer Lösung und wollte noch nicht hier fragen, aber da mir diese unbeantwortete Frage aufgefallen ist wollte ich sie doch mit einer Aufforderung zur Beantwortung versehen. Ich weiß, dass hier Fragen leicht ungelesen in den Tiefen des Forums verschwinden :S

//Edit:
http://lwjgl.org/forum/index.php?topic=1845.0
Sieht so auß, als läge dort die Lösung für dein Problem, falls du noch daran arbeitest. Ist ja schließlich schon ein Monat her ;)

Aber dass das Bild Unscharf geladen wirt ist anscheinend noch niemandem im ganzen Internet passiert ^^

kiba

Alter Hase

  • »kiba« ist der Autor dieses Themas

Beiträge: 327

Wohnort: NRW

Beruf: Azubi: Fach-Info. Anw.

  • Private Nachricht senden

3

05.04.2009, 03:59

C-/C++-Quelltext

1
2
IL.ilOriginFunc(IL.IL_ORIGIN_LOWER_LEFT);
IL.ilEnable(IL.IL_ORIGIN_SET);

Ok das hab ich auch vorkurzen herausgefunden , das laden klappt auch wunderbar aber wenn ich jetzt ein bild speichern will
speichert der das immer umgekert egal welches format.

Werbeanzeige