Einzelnen Beitrag anzeigen

Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#1

PNG Bildbereich kopieren mit JvImage

  Alt 24. Feb 2009, 23:18
Hallo

Ich hänge an dem Problem aus einem PNG Image einen Bereich zu kopieren.
BitBlt und CopyRect habe ich bereits ausprobiert komme damit aber nicht weiter.
bei BitBlt wird nichts angezeigt und bei CopyRect wird mir ein weißes Kästchen angezeigt indem
eigentlich der Bildausschnitt angezeigt werden müsste, sofern ich über ein Temporäres TBitmap gehe.

Im ersten Bild im Anhang sieht man das Quellbild. Dort sind alle Bilder untereinander vom gleichen Typ.
Die JvImage Komponente hat das normale Bild und zusätzlich Bilder für Enter und Down.
Diese würde ich jeweils gerne mit einem Ausschnitt aus dem Quellbild füllen.

Delphi-Quellcode:
  var
    TmpImage: TJvImage;
    TmpImage2: TJvImage;
    BmP: TBitmap;
begin
  Bmp := TBitmap.Create;
  Bmp.PixelFormat := pf32Bit;
  Bmp.Height := 17;
  Bmp.Width := 20;

  TmpImage := TJvImage.Create(Self);
  TmpImage.Parent := Self;
  TmpImage.Visible := True;
  TmpImage.Left := 10;
  TmpImage.Top := 10;
  TmpImage.Picture.Bitmap.Canvas.Pen.Mode := pmnotXor;

  TmpImage2 := TJvImage.Create(Self);
  TmpImage2.Parent := Self;
  TmpImage2.Top := 120;
  TmpImage2.Left := 10;
  TmpImage2.Width := 100;
  TmpImage2.Height := 100;

  Self.FMain_Normal_Frm.IMG_BACKGROUND.Picture.LoadFromFile(DefPath + 'mainframe.png');

  TmpImage.Picture.LoadFromFile(DefPath + 'captionbuttons.png');
  TmpImage.AutoSize := True;
  bmp.Canvas.CopyRect(Rect(0, 0, 20, 17), TmpImage.Picture.Bitmap.Canvas, Rect(0, 0, 20, 17));
  TmpImage2.AutoSize := True;
  TmpImage2.Picture.Bitmap.Assign(BmP);
  TmpImage2.Picture.Bitmap := Bmp;
Theoretisch sollte im zweiten Bild der Button Minimieren angezeigt werden, aber ausser einem weißen Kästchen eben nichts zu sehen.
Wenn ich es ohne temporärem TBitmap mache, so ists direkt schwarz.

Wo genau habe ich den Fehler, kann mir da jemand helfen?

Gruß

Daniel
Miniaturansicht angehängter Grafiken
screen2_759.jpg   screen1_112.jpg  
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat