Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Fehler bei Image321.bitmap.pixel[x, y] (https://www.delphipraxis.net/102324-fehler-bei-image321-bitmap-pixel%5Bx-y%5D.html)

BasicX 26. Okt 2007 17:48


Fehler bei Image321.bitmap.pixel[x, y]
 
Hi,
Ich stehe mal wieder vor einem ziemlich komischen Problem:

Ich will eine Grafik erstellen, die mir anzeigt, wo in einer Bildzeile welcher Farbanteil wie stark vorhanden ist. Dafür habe ich mir folgenden Code überlegt (scal und image321 sind image-Componenten der Graphics32-Lib)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   x: integer;
   rgb_col: Tcolor;
   rgb_col2: Tcolor32;
begin
   form2.Show;
   form2.scal.Bitmap.Create;
   form2.scal.Bitmap.Clear(clblack32);
   for x := 0 to form3.Image321.Bitmap.Width - 1 do
   begin
      rgb_col2 := form3.image321.Bitmap.Pixel[x,spinedit1.Value];
      rgb_col := ColorToRGB(rgb_col2);
      form2.scal.Bitmap[x, GetRValue(rgb_col)] := clRed32;
      form2.scal.Bitmap[x, GetGValue(rgb_col)] := cllime32;
      form2.scal.Bitmap[x, GetBValue(rgb_col)] := clblue32;
   end;
   form2.scal.refresh;

end;
Dabei liegt der Fehler in dem Bereich:
Delphi-Quellcode:
form2.scal.Bitmap[x, GetGValue(rgb_col)] := clRed32;
form2.scal.Bitmap[x, GetGValue(rgb_col)] := cllime32;
form2.scal.Bitmap[x, GetBValue(rgb_col)] := clblue32;
Wenn ich diesen Bereich auskommentiere geht es. (Das Imagefenster ist auch nicht zu klein, denn ich kann auch einen Festen Pixel angeben und es klappt nicht).

wenn ich diese procedure aufrufe kommt die Fehlermeldung: 'Project Project1.exe raised exception class EAccessViolation at address 00468A9B in module Project1.exe. Write of address 000000000. Process stopped. Use Step or Run to continue

Danke im voraus
BasicX

DeddyH 26. Okt 2007 18:21

Re: Fehler bei Image321.bitmap.pixel[x, y]
 
Du hast überhaupt keine Größe für die Bitmap definiert.

BasicX 26. Okt 2007 18:28

Re: Fehler bei Image321.bitmap.pixel[x, y]
 
ahh..,
danke, jetzt tut ers, sind nur alle Pixel auf O (der Y-Achse)

[edit] Mit getauschter splitung der Farbanteile macht er jetzt alles.
Danke nochmal

Mfg BasicX [/edit]

Nuclear-Ping 27. Okt 2007 18:04

Re: Fehler bei Image321.bitmap.pixel[x, y]
 
Zitat:

Zitat von BasicX
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   x: integer;
   rgb_col: Tcolor;
   rgb_col2: Tcolor32;
begin
        ...
   form2.scal.Bitmap.Create;
        ...
end;

Ich weiß nicht, wie es bei den Graphics32 Klassen ist oder wie du das da angelegt hast, aber normalerweise erzeugt man eine Instanz einer Klasse mit Klasse := TKlasse.Create und nicht Klasse.Create.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 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