![]() |
DDS(DXTC) und andere Formate mit DevIL
Hallo
Ich möchte gerne Bilder mit der Endung .dds laden also hab ich mir DevIL runtergeladen und installiert,vielleicht hab ich da was falsch gemacht. 1. die dll's in den ordner wo mein Code ist 2. die 3 .pas files in den lib ordner und 3. einen pfad über die Tool/enviroments/libs funktion geaddet. dann unter uses die hier zugefügt: openIL, openilu, openilut; Das Prog:
Delphi-Quellcode:
danach gibts eine unknow Picture file extension...?
opendialog1.FileName:='Bild Auswaehlen'; // oeffnet den
opendialog1.Execute; // filedirectory dialog bildname:=opendialog1.Filename; //hier der pfad zur RFA mit namen nurrfaname:=ExtractFileName(OpenDialog1.FileName); //hier nur der name der rfa //image laden image1.Picture.LoadFromFile(bildname); Was mach ich falsch? Es muss leider unbedingt dds sein. :( [edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit] |
Re: DDS(DXTC) und andere Formate mit DevIL
Moin thehed,
Du müsstest wohl mittels TPicture.RegisterFileFormat den Dateityp erst registrieren, bevor Du ihn über den gezeigten Weg benutzen kannst. Über das wie das damit genau geht, kann ich Dir leider keine Auskunft geben. |
Re: DDS(DXTC) und andere Formate mit DevIL
Schade
weis sonst noch jemand was darüber? Ich habe noch gelesen das man devIL zuerst initialisieren muss mit: ilInit; ilutRenderer(IL_OPENGL); aber bringt immer noch die selbe fehlermeldung :( |
Re: DDS(DXTC) und andere Formate mit DevIL
ok ich habs jetzt :-D in einer uralten version von DevIL gibts ein Delphi Beispiel.
Dachte mir ich schreibs mal hier hin falls mal jemand das selbe sucht... Zuerst die Schritte 1 bis 3 aus meinem ersten post
Delphi-Quellcode:
Nun kann ich fast jedes Format laden,nur schade das der Entwickler von DevIL
procedure TForm1.Button2Click(Sender: TObject);
var ImgId: TILuint; Bitmap: TBitmap; MemDC: HDC; _Bitmap: HBITMAP; begin OpenIL.ilInit; ilutInit; // how many images ?? ilGenImages(1, @imgID); ilBindImage(imgid); // Normal überschreibt devil beim saven nicht hiermit schon der // Befehl ist ilsave(test.bmp') oder welches format auch immer ilEnable( il_File_Overwrite ); // Bild Laden ilLoadImage('test.dds'); //logisch.... Bitmap := TBitmap.Create; //grösse von geladenem bild holen Bitmap.Width := ilGetInteger(IL_IMAGE_WIDTH); Bitmap.Height := ilGetInteger(IL_IMAGE_HEIGHT); //hdc MemDC := CreateCompatibleDC(Canvas.Handle); //convert eventuell direkt winloadimage benutzen _Bitmap := ilutConvertToHBitmap(Bitmap.Canvas.Handle); //Versteh ich nicht?? SelectObject(MemDC, _Bitmap); //das ist klar BitBlt(Bitmap.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, MemDC, 0, 0, SRCCOPY); Image1.Picture.Assign(Bitmap); DeleteDC(MemDC); DeleteObject(_Bitmap); Bitmap.Free; ilDeleteImages(1, @ImgId); aufgehört hat. [edit=FuckRacism]Delphi-Syntax hinzugefügt. Mfg, FuckRacism[/edit] |
Re: DDS(DXTC) und andere Formate mit DevIL
Leider funktionier es nicht...
Das Bld welches geladen wird, wird nicht angezeigt. Ich habe es ein wenig abgeaendet aber es tut sich immer noch nichts
Delphi-Quellcode:
.....wer weiss hier Rat.
procedure TForm1.TntButton1Click(Sender: TObject);
var ImgId: TILuint; Bitmap: TBitmap; MemDC: HDC; _Bitmap: HBITMAP; begin OpenIL.ilInit; ilutInit; // how many images ?? ilGenImages(1, @imgID); ilBindImage(imgid); // Normal überschreibt devil beim saven nicht hiermit schon der // Befehl ist ilsave(test.bmp') oder welches format auch immer ilEnable( il_File_Overwrite ); if OpenPictureDialog1.Execute then begin ilLoadImage(PChar(OpenDialog1.FileName)); //logisch.... Bitmap := TBitmap.Create; //grösse von geladenem bild holen Bitmap.Width := ilGetInteger(IL_IMAGE_WIDTH); Bitmap.Height := ilGetInteger(IL_IMAGE_HEIGHT); //hdc MemDC := CreateCompatibleDC(Canvas.Handle); //convert eventuell direkt winloadimage benutzen _Bitmap := ilutConvertToHBitmap(Bitmap.Canvas.Handle); //Versteh ich nicht?? // SelectObject(MemDC, _Bitmap); //das ist klar BitBlt(Bitmap.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, MemDC, 0, 0, SRCCOPY); // Bitmap.SaveToFile(ExtractFilePath(Application.ExeName)+'output.bmp'); Bitmap.SaveToFile('output.bmp'); Image1.Picture.Assign(Bitmap); DeleteDC(MemDC); DeleteObject(_Bitmap); Bitmap.Free; ilDeleteImages(1, @ImgId); end; //if OpenPictureDialog1.Execute then begin end; Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz