Entwickler-Ecke
Multimedia / Grafik - Scanline will nicht so wie ich will
>M@steR< - So 12.10.08 14:43
Titel: Scanline will nicht so wie ich will
Gelöscht
platzwart - So 12.10.08 15:14
hi,
nimm lieber ein TBitMap32 oder TImage32 aus der Graphics32. Da dürfte die Geschwindigkeit um Faktor 200 steigen. Dann brauchst du auch nicht mehr mit den einzelnen Farbwerten herumzuhantieren...
>M@steR< - So 12.10.08 15:19
Gelöscht
Boldar - So 12.10.08 15:20
Du sollst ja auch eine ganz andere Komponente nehmen!
>M@steR< - So 12.10.08 15:24
Gelöscht
>M@steR< - So 12.10.08 15:36
Gelöscht
uall@ogc - So 12.10.08 16:25
pf24bit für RGB (was du hast)
bzw. pf32bit fpr RGBA
platzwart - So 12.10.08 17:45
platzwart hat folgendes geschrieben : |
hi,
nimm lieber ein TBitMap32 oder TImage32 aus der Graphics32. Da dürfte die Geschwindigkeit um Faktor 200 steigen. Dann brauchst du auch nicht mehr mit den einzelnen Farbwerten herumzuhantieren... |
welche komponenten habe ich denn da angesprochen? -> "TBitMap32 oder TImage32 aus der Graphics32"^^
http://graphics32.org/wiki/
>M@steR< - So 12.10.08 19:37
Gelöscht
>M@steR< - So 12.10.08 21:46
Gelöscht
platzwart - So 12.10.08 22:16
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button1Click(Sender: TObject); var x,y:integer; line: PColor32Array; begin for y := 0 to image321.Height -1 do begin line := image321.Bitmap.scanline[y]; for x := 0 to image321.Width -1 do begin if line^[x] = clWhite then if line[x] = clWhite then begin showmessage('Weiß'); end; end; end; end; |
>M@steR< - So 12.10.08 22:19
Gelöscht
platzwart - So 12.10.08 22:45
kam die zugriffsverletzung in der zeile, die ich markiert hatte? und hast du die markierte gelöscht?
>M@steR< - So 12.10.08 22:47
Gelöscht
platzwart - Mo 13.10.08 00:40
*kristallkugel auspack und reinschau*
... hast ja net vergessen, in die bitmap auch ein bild zu laden? ^^
ansonsten greift er auf eine leere bitmap zu und natürlich gibts dann eine fehlermeldung ;)
Hidden - Mo 13.10.08 01:03
Hi,
Ich würde dir empfehlen, ein paar überflüssige Einrückungen wegzulassen. Mag ein bisschen komisch klingen, aber gibt dir wirklich viel an Übersichtlichkeit ;)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.Button1Click(Sender: TObject); var x, y: Integer; Line: PColor32Array; begin for y := 0 to image321.Height -1 do begin Line := Image321.Bitmap.Scanline[y]; for x := 0 to Image321.Width -1 do begin if Line[x] = clWhite then ShowMessage('Weiß'); end; end; end; |
Also 'ne leere Bitmap kann's nicht sein. Wenn er vergessen hätte, sie zu erzeugen, käme die Zugriffsverletzung früher(bei mir jetzt Zeile 6). Und bei Height = 0 würde die for-Schleife null mal ausgeführt..
mfG,
>M@steR< - Mo 13.10.08 01:14
Gelöscht
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!