![]() |
Gdi+: Wie Bitmap-Objekt mit Image-Bild verbinden?
Hallo Gemeinde!
Schon wieder ich :oops: -- aber ich bin mal wieder im GDI+ Gestrüpp hängengeblieben und hoffe wieder auf eure Hilfe. In einem TImage habe ich ein Bild von dem ich gern ein Farb-Histogramm (RGB Kanäle) erstellen möchte. Erik van Bilsen hat in seinem GDI+ 1.1 Demo-Programm sogar ein solches Beispiel (s.u.). Dieses Beispiel geht nun davon aus, dass man ein Bitmap-Objekt mit "Bitmap := TGPBitmap.Create('ImageFileSmall.jpg')" erzeugt indem man das File als Parameter übergibt. Und genau hier ist mein Problem: Wie geh ich vor, wenn ich das Bildchen bereits in einer TImage-Komponente habe -- es also zur Laufzeit erzeugt habe, und deshalb kein File als Parameter übergeben kann? Wie kann ich mein bereits bestehendes Image mit Bitmap vom Typ IGPBitmap verheiraten? Hier das angesprochene Beispiel -- eigentlich geht es nur um die erste Zeile nach dem Begin:
Delphi-Quellcode:
Habt ihr wohl eine Idee für mich?
procedure TDemoHistogram.Run;
var Bitmap: IGPBitmap; Histogram: IGPHistogram; I, J, X, Y, MaxVal: Integer; Scale: Double; Pen: IGPPen; begin Bitmap := TGPBitmap.Create('ImageFileSmall.jpg'); // <-- Hier drum geht es ! Graphics.DrawImage(Bitmap, 10, 10, Bitmap.Width, Bitmap.Height); // Retrieve RGB histogram of bitmap Histogram := Bitmap.GetHistogram(HistogramFormatRGB); // Determine the maximum value in the histogram MaxVal := 0; for J := 0 to Histogram.ChannelCount - 1 do for I := 0 to Histogram.EntryCount - 1 do MaxVal := Max(MaxVal, Histogram[J, I]); // Scale maximum value so it displays as the height of the bitmap Scale := Bitmap.Height / MaxVal; // Draw the histogram next to the bitmap Pen := TGPPen.Create(0); X := 10 + Bitmap.Width + 10; Y := 10 + Bitmap.Height; for I := 0 to Histogram.ChannelCount - 1 do begin if (I = 0) then Pen.Color := TGPColor.Create(128, 255, 0, 0) else if (I = 1) then Pen.Color := TGPColor.Create(128, 0, 255, 0) else Pen.Color := TGPColor.Create(128, 0, 0, 255); for J := 0 to Histogram.EntryCount - 1 do Graphics.DrawLine(Pen, X + J, Y, X + J, Y - Scale * Histogram[I, J]); end; end; Dankeschön & Gruß Jazzman |
AW: Gdi+: Wie Bitmap-Objekt mit Image-Bild verbinden?
Ok, das Problem habe ich nun mit Streams gelöst :-D
Guckst Du hier: ![]() Trotzdem vielen Dank! Gruß an alle! Jazzman |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:28 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-2025 by Thomas Breitkreuz