AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Gleiches Bild geladen, unterschiedliche Pixel?

Gleiches Bild geladen, unterschiedliche Pixel?

Ein Thema von Aljoscha · begonnen am 11. Jan 2012 · letzter Beitrag vom 11. Jan 2012
Antwort Antwort
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#1

Gleiches Bild geladen, unterschiedliche Pixel?

  Alt 11. Jan 2012, 04:32
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;
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#2

AW: Gleiches Bild geladen, unterschiedliche Pixel?

  Alt 11. Jan 2012, 04:55
Ich habe den Fehler gefunden...
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));
GetRValue wäre natürlich richtig gewesen.
Es wird wirklich Zeit fürs Bett
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Gleiches Bild geladen, unterschiedliche Pixel?

  Alt 11. Jan 2012, 08:11
DRY
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Gleiches Bild geladen, unterschiedliche Pixel?

  Alt 11. Jan 2012, 15:38
Nur ne kleine Anmerkung:
Delphi-Quellcode:
Image1.Picture:=temp; // #1

temp.Free; // #2
temp:=TPicture.Create;
Das hier sieht sehr suspekt aus.
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).
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (11. Jan 2012 um 15:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Gleiches Bild geladen, unterschiedliche Pixel?

  Alt 11. Jan 2012, 15:44
Ist in dem Fall nicht nötig, da TImage das schon von alleine tut.
Zitat:
Delphi-Quellcode:
procedure TImage.SetPicture(Value: TPicture);
begin
  FPicture.Assign(Value);
end;
Allerdings würde ein Assign die Lesbarkeit/Nachvollziehbarkeit erhöhen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: Gleiches Bild geladen, unterschiedliche Pixel?

  Alt 11. Jan 2012, 15:46
Ah.
Habe jetzt nicht extra Delphi deswegen gestartet, sorry =P
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Gleiches Bild geladen, unterschiedliche Pixel?

  Alt 11. Jan 2012, 15:47
Ich auch nicht, mit PSPad geht es schneller
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#8

AW: Gleiches Bild geladen, unterschiedliche Pixel?

  Alt 11. Jan 2012, 21:30
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:14 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