![]() |
Re: kurzvortrag / einfürhrung in Grafikprogrammierung - ca 1
ok werde mich jetzt damit noch ein bissel beschäftigen und dann mal gucken was am dienstag drauß wird!
danke noch mal..wenn ich noch frage habe dann poste ich einfach |
Re: kurzvortrag / einfürhrung in Grafikprogrammierung - ca 1
Mit der Funktion/Prozedur "Pixels"(oder Eigenschaft ;)) vom TCanvas kannst du dir entweder die Farbe eines Pixels im Canvas als TColor zurückgeben lassen, oder du veränderst die Farbe des Pixels mit derselben Prozedur.
Aufbau bei Pixelfarbe auslesen: Farbe:=Canvas.Pixels[5,5]; Farbe:Variable vom Typ TColor in der die Farbe des angegebenen Pixels gespeichert wird [5,5]: der erste grüne Wert gibt die Position des Pixels auf der X-Achse an, der zweite die Position auf der Y-Achse. Dabei ist ganz oben links die Koordinate [0,0], also:
Code:
("o" stellt einfach einen Pixel dar)
--Y
X 0 1 2 3 4 5 ... 1 o o o o o ... 2 o o o o o ... 3 o o o o o ... 4 o o o o o ... 5 o o o o o ... . . . Aufbau bei Pixelfarbe setzen: Canvas.Pixels[5,5]:=Farbe; Farbe: Nun wird Farbe als Variable benutzt, die die Farbe repräsentiert die letztendlich auf den Pixel gezeichnet wird. [5,5]: Ist wieder die Koordinatenangabe des Pixels, [b]aber[/] nun wird auf ihn mit der angegebenen Farbe gemalt und nicht sein Farbwert ausgelesen. Beispiel:
Delphi-Quellcode:
Um deine Zuhörer noch ein bisschen zu "beeindrucken" kannst du die Prozedur
var
Farbe: TColor; begin Farbe:= Canvas.Pixels[2,2]; {Liest die Farbe des Pixels auf den Koordinaten X:2 Y:2 aus und schreibt sie in die Variable "Farbe".} Canvas.Pixels[3,3]:= Farbe; {Färbt den Pixel auf den Koordinaten X:3 Y:3 in der Farbe der Variable "Farbe"} end; ![]() Eine ähnliche Methode hat TCanvas schon. Das schon besagt Canvas.Draw zeichnet einfach ein Bitmap an die angegebenen X und Y Koordinaten vom Zielbild. BitBlt ist allerdings wesentlich flexibler und imho auch schneller. Canvas.Draw(5,5,Grafik); Die ersten beiden Werte sind die X und Y Koordinaten, wohin das Bild gezeichnet werden soll. Die Zweite Variable "Grafik" vom Typ TGraphic ist das Bild, welches an die X und Y Koordinaten gezeichnet wird. BitBlt Zitat:
Ich weiß nicht, ob du dich mit Handles auskennst. Handles sind so etwas wie Adressen von "Objekten". Und da TCanvas auch ein Handle hat ;), kann man diese Methode auch damit benutzen. Erklärung
Code:
Beispiel:
BOOL BitBlt(
HDC hdcDest, // Handle des Zielcanvas (also das Canvas, wo er draufzeichnen soll) int nXDest, // X-Koordinate, wohin er zeichnen soll (wieder von oben links aus gesehen) int nYDest, // Y-Koordinate, wo er zeichnen soll int nWidth, // Breite des zu zeichnenden Bildausschnittes int nHeight, // Höhe des zu zeichnenden Bildausschnittes HDC hdcSrc, // Handle des Quellcanvas (also das Canvas, dessen Ausschnitt er auf das Zielcanvas zeichnen soll) int nXSrc, // X-Koordinate vom zu zeichnenden Ausschnitt auf dem Quellcanvas int nYSrc, // Y-Koordinate vom zu zeichnenden Ausschnitt auf dem Quellcanvas DWORD dwRop // imho die Art wie er die Farben beim Draufzeichnen mischt ); sagen wir mal wir hätten zwei Images. Auf Image1 soll ein Ausschnitt von Image2 gezeichnet werden
Delphi-Quellcode:
Also:
begin
BitBlt(Image1.Canvas.Handle,2,2,100,100,Image2.Canvas.Handle,0,0,SrcCopy); end;
So, das wars erstmal :D Korrigiert mich, wenn ich was falsch gemacht habe. [Edit] Warscheinlich kann man alleine mit der Methode BitBlt 15min. füllen :lol: [/Edit] |
Re: kurzvortrag / einfürhrung in Grafikprogrammierung - ca 1
Zitat:
|
Re: kurzvortrag / einfürhrung in Grafikprogrammierung - ca 1
Zitat:
Bsp.: Rect(0,0,100,100); man kann das ganze auch als Variable machen:
Delphi-Quellcode:
Graphic ist der basistype für grafiken (TGraphic) da kanst du z.B. ein TBitmap einsetzenvar myrect:trect; begin myrect.Left:=0; myrect.Top:=0; myrect.Right:=100; myrect.Bottom:=100; Canvas.Rectangle(myrect); end; |
Re: kurzvortrag / einfürhrung in Grafikprogrammierung - ca 1
Danke für die weiteren Hilfen/Texte/Erklärungen!
muss mich da jetzt noch ein bissel rein abreiten und dann denke ich mal das ich für meine klasse was brauchbares schaffen kann ;) also dann danke noch mal schönen abend noch und vorallem schöne arbeitswoche / schulwoche |
Re: kurzvortrag / einfürhrung in Grafikprogrammierung - ca 1
Zitat:
|
Re: kurzvortrag / einfürhrung in Grafikprogrammierung - ca 1
guten morgen DP'ler
ich habe es jetzt hinter mir es könnte so sein, also hätten sie es verstanden und können es auch anwenden trotz weiter hilfe ;) naja mal schauen....mal gucken was ich jetzt dazu bekomme danke noch mal an alle...ohne euch wäre ich verloren gewesen!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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