![]() |
Gleiches Bild geladen, unterschiedliche Pixel?
Guten Abend/Morgen ;-)
Ich habe folgendes Problem, ich möchte 2 Bilder laden und deren RGB Code an einer bestimmten Position ausgeben welche ich durch Edits definiere. Wenn ich nun aber 2 mal exakt das gleiche Bild lade erhalte ich an den meisten Pixeln unterschiedliche RGB Codes. Wie kann das sein beim gleichen Bild? Ich hoffe ihr versteht was ich meine.
Code:
procedure TForm1.FormCreate(Sender: TObject);
var temp: TPicture; begin temp:=TPicture.Create; temp.LoadFromFile('.\fb1.jpg'); bmp1:= TBitmap.Create; bmp1.Width := temp.Width; bmp1.Height := temp.Height; bmp1.Canvas.Draw(0, 0, temp.Graphic); Image1.Picture:=temp; temp.Free; temp:=TPicture.Create; temp.LoadFromFile('.\fb1.jpg'); bmp2:= TBitmap.Create; bmp2.Width := temp.Width; bmp2.Height := temp.Height; bmp2.Canvas.Draw(0, 0, temp.Graphic); Image2.Picture:=temp; end; procedure TForm1.Button2Click(Sender: TObject); var RGB1 : TColor; RGB2 : TColor; begin xZeiger := StrToInt(edit1.text); yZeiger := StrToInt(edit2.text); RGB1 := bmp1.Canvas.Pixels[xZeiger, yZeiger]; RGB2 := bmp2.Canvas.Pixels[xZeiger, yZeiger]; label1.Caption:=IntToStr(GetGValue(RGB1)); label2.Caption:=IntToStr(GetGValue(RGB1)); label3.Caption:=IntToStr(GetBValue(RGB1)); label4.Caption:=IntToStr(GetRValue(RGB2)); label5.Caption:=IntToStr(GetGValue(RGB2)); label6.Caption:=IntToStr(GetBValue(RGB2)); end; |
AW: Gleiches Bild geladen, unterschiedliche Pixel?
Ich habe den Fehler gefunden...
label1.Caption:=IntToStr(GetGValue(RGB1));GetRValue wäre natürlich richtig gewesen. Es wird wirklich Zeit fürs Bett :-D |
AW: Gleiches Bild geladen, unterschiedliche Pixel?
![]() |
AW: Gleiches Bild geladen, unterschiedliche Pixel?
Nur ne kleine Anmerkung:
Delphi-Quellcode:
Das hier sieht sehr suspekt aus.
Image1.Picture:=temp; // #1
temp.Free; // #2 temp:=TPicture.Create; Du kopierst bei #1 eine Instanz und nicht den Inhalt der Instanz. Wird der Inhalt der Instanz gelöscht (#2), so ist die Instanz nutzlos und die Verwendung derer wird zu Problemen führen. Kopiere lieber den Inhalt per Image1.Picture.Assign() (sofern Assign vorhanden). |
AW: Gleiches Bild geladen, unterschiedliche Pixel?
Ist in dem Fall nicht nötig, da TImage das schon von alleine tut.
Zitat:
|
AW: Gleiches Bild geladen, unterschiedliche Pixel?
Ah.
Habe jetzt nicht extra Delphi deswegen gestartet, sorry =P |
AW: Gleiches Bild geladen, unterschiedliche Pixel?
Ich auch nicht, mit PSPad geht es schneller :lol:
|
AW: Gleiches Bild geladen, unterschiedliche Pixel?
Danke für eure Hinweise ^^
Ich weiß der Code ist eine Katastrophe, sollte eigentlich nur ein schnelles POC werden für einen Freund mit dem ich diskutiert hatte, allerdings hatte ich unterschätzt wie sich Müdigkeit auf die Konzentration auswirkt :P |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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