Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie funktioniert Scanline? (https://www.delphipraxis.net/71827-wie-funktioniert-scanline.html)

xZise 21. Jun 2006 17:04


Wie funktioniert Scanline?
 
Da ich an zwei Bilderprojekten mit Pixels arbeite wollte ich fragen, wie Scanline funktioniert und es einsetzt. Vielleicht kennt jemand auch ein Tutorial (am besten deutsch).

_frank_ 21. Jun 2006 17:10

Re: Wie funktioniert Scanline?
 
hab das hier mal grob erklärt...
http://www.delphipraxis.net/internal...light=scanline

DGL-luke 21. Jun 2006 17:11

Re: Wie funktioniert Scanline?
 
is eigentlcih nich schwierig. scanline gibt dir den pointer zu einer bildzeile bzw. zum ersten pixel.

Delphi-Quellcode:
var rowptr: Pointer;

rowptr := Bitmap1.Scanline[5];
TColor(Pointer(Integer(rowptr)+5)) := clback;
ist äquivalent zu

Delphi-Quellcode:
Bitmap1.Canvas.Pixels[5,5] := clblack;

xZise 21. Jun 2006 17:24

Re: Wie funktioniert Scanline?
 
Und ich komme an den Wert indem ich das
Delphi-Quellcode:
:= clBlack
weglasse?

[edit] Irgendwie net:
E2064 Der linken Seite kann nichts zugewiesen werden

Delphi-Quellcode:
TColor(Pointer(Integer(Image.Picture.Bitmap.Scanline[5])+5)) := clback;
[/edit]

DGL-luke 21. Jun 2006 17:25

Re: Wie funktioniert Scanline?
 
klar...

Khabarakh 21. Jun 2006 17:30

Re: Wie funktioniert Scanline?
 
Zitat:

Zitat von xZise
Vielleicht kennt jemand auch ein Tutorial (am besten deutsch).

Motzis Pointer-Tutorial

DGL-luke 21. Jun 2006 17:33

Re: Wie funktioniert Scanline?
 
uppsala... ich glaube da fehlt ein häckchen. dereferenzieren ist das stichwort:

TColor(Pointer(Integer(Image.Picture.Bitmap.Scanli ne[5])+5)^) := clback;

so müssts gehen.

bigg 21. Jun 2006 18:15

Re: Wie funktioniert Scanline?
 
Zitat:

Zitat von Khabarakh
Motzis Pointer-Tutorial

Du liest Motzi's Tutorials? :mrgreen:
Nur findet man in diesem Tutorial nicht's zum Thema "Scanline". ;-)

Das ist wohl eher das, wonach du gesucht hast:
http://www.dsdt.info/tutorials/bitmap/

Khabarakh 21. Jun 2006 18:38

Re: Wie funktioniert Scanline?
 
Zitat:

Zitat von bigg
Zitat:

Zitat von Khabarakh
Motzis Pointer-Tutorial

Du liest Motzi's Tutorials? :mrgreen:

Ebenso wie ich den Apostroph richtig einzusetzen weiß :stupid: .
Zitat:

Nur findet man in diesem Tutorial nicht's zum Thema "Scanline". ;-)
Wer Pointer verstanden hat, versteht nach 1 Minute OH-Lektüre und einem kleinen Beispielcode auch Scanline.
Zitat:

Das ist wohl eher das, wonach du gesucht hast:
http://www.dsdt.info/tutorials/bitmap/
Ich negiere meine letzte Aussage:
Wer Pointer nicht verstanden hat, wird auch nie Scanline verstehen.
Und da ersteres Thema im Tutorial nicht behandelt wird, lernt man davon höchstens Copy & Waste. Und wenn ich dann noch so etwas lese...
Zitat:

Auf jeden Fall ist das ideale Pixelformat für die Bearbeitung mit ScanLine 24Bit, [...]

bigg 21. Jun 2006 21:11

Re: Wie funktioniert Scanline?
 
Jo, und warum schreibst du das nicht von Anfang an mit dazu?^^ :shock:
Im Grunde hättest du ihm doch gleich ein Grundlagen-Tutorial vor die Füsse werfen müssen,
aber nein, erstmal die Pointer auspacken. Klasse. :mrgreen:

Khabarakh 21. Jun 2006 21:24

Re: Wie funktioniert Scanline?
 
Zitat:

Zitat von bigg
Jo, und warum schreibst du das nicht von Anfang an mit dazu?^^ :shock:

Eigentlich fand ich meine Absicht offensichtlich genug ;) .
Zitat:

Im Grunde hättest du ihm doch gleich ein Grundlagen-Tutorial vor die Füsse werfen müssen,
aber nein, erstmal die Pointer auspacken. Klasse. :mrgreen:
Hallo? Sollen wir jetzt zu jeder popeligen Property (ja, Scanline IST popelig, wenn auch nützlich) ein Tutorial schreiben, nur weil den Anfängern das Wissen um das hinter den Kulissen fehlt und sie eher auf Copy & Waste stehen?
Scanline ist nichts weiter als ein Pointer auf ein Pixel-Array, fetig aus. Wer Scanline nicht anhand der OH oder eines kleinen Beispielcodes versteht (was kein Vorwurf sein soll, jeder hat mal bei 0 angefangen), dem fehlt viel mehr als ein Tutorial zu der Property...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz