AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi PNG Bildbereich kopieren mit JvImage
Thema durchsuchen
Ansicht
Themen-Optionen

PNG Bildbereich kopieren mit JvImage

Ein Thema von Cyberaxx · begonnen am 24. Feb 2009 · letzter Beitrag vom 26. Feb 2009
 
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, 22: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
Angehängte Grafiken
Dateityp: jpg screen2_759.jpg (27,5 KB, 11x aufgerufen)
Dateityp: jpg screen1_112.jpg (38,2 KB, 17x aufgerufen)
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz