Einzelnen Beitrag anzeigen

omeryasarcan

Registriert seit: 29. Nov 2004
1 Beiträge
 
#5

Re: DDS(DXTC) und andere Formate mit DevIL

  Alt 17. Mär 2009, 21:43
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:
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;
.....wer weiss hier Rat.

Danke
  Mit Zitat antworten Zitat