Sign in Join
Wiki copytemporary

BGRABitmap/de: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-[![bgrabitmap logo.jpg](/wiki-images/7/7b/bgrabitmap_logo.jpg)](</File:bgrabitmap_logo.jpg>)
2-
31Siehe auch: [[Developing with Graphics/de|Entwickung mit Grafik]]
42
5-## Contents
6-
7- * 1 Beschreibung
8- * 2 Verwendung von BGRABitmap
9- * 2.1 Tutorial
10- * 2.2 Overview
11- * 2.3 Einfaches Beispiel
12- * 3 Anmerkungen
13- * 4 Integrierte Zeichenfunktionen
14- * 5 Zeichnen auf der Leinwand
15- * 6 Direkter Zugriff auf ein Pixel
16- * 7 Bildmanipulation
17- * 8 Bildüberblendung
18- * 9 Screenshots
19- * 10 Lizenz
20- * 11 Download
21-
223### Beschreibung
234
24-**BGRABitmap** ist eine Sammlung von Units zum Erzeugen und Modifizieren von Bildern mit Transparenzinformationen (Alphakanal). Der direkte Zugriff auf einzelne Pixels erlaubt eine schnelle Bildbearbeitung. Diese Bibliothek wurde optimiert und getestet unter Windows, Ubuntu und Mac OS X, mit den Schnittstellen win32, gtk1, gtk2 und carbon.
5+**BGRABitmap** ist eine Sammlung von Units zum Erzeugen und Modifizieren von Bildern mit Transparenzinformationen (Alphakanal). Der direkte Zugriff auf einzelne Pixels erlaubt eine schnelle Bildbearbeitung. Diese Bibliothek wurde optimiert und getestet unter Windows, Ubuntu und Mac OS X, mit den Schnittstellen win32, gtk1, gtk2 und carbon.
256
26-Die Hauptklasse ist _TBGRABitmap_ , die von _TFPCustomImage_ abgeleitet wurde. Es gibt auch eine Klasse _TBGRAPtrBitmap_ , die es erlaubt, bereits allozierte BGRA-Daten zu bearbeiten. Dieses Format besteht aus 4 Bytes pro Pixel (blau, grün, rot und alpha; in dieser Reihenfolge).
7+Die Hauptklasse ist *TBGRABitmap*, die von *TFPCustomImage* abgeleitet wurde. Es gibt auch eine Klasse *TBGRAPtrBitmap*, die es erlaubt, bereits allozierte BGRA-Daten zu bearbeiten. Dieses Format besteht aus 4 Bytes pro Pixel (blau, grün, rot und alpha; in dieser Reihenfolge).
278
289### Verwendung von BGRABitmap
2910
3011#### Tutorial
3112
32- * [How to convert an application from TCanvas to BGRABitmap](<http://www.youtube.com/watch?v=HGYSLgtYx-U>)
33- * [[BGRABitmap tutorial TAChart|Using BGRABitmap to render a TAChart]]
34- * [[BGRABitmap tutorial/de|Eine Serie von Tutorials zum schrittweisen Lernen]]
35- * Beispiele im [LazPaint Repositorium](<http://lazpaint.svn.sourceforge.net/viewvc/lazpaint/>).
13+- [How to convert an application from TCanvas to BGRABitmap](http://www.youtube.com/watch?v=HGYSLgtYx-U)
14+- [[BGRABitmap tutorial TAChart|Using BGRABitmap to render a TAChart]]
15+- [[BGRABitmap tutorial/de|Eine Serie von Tutorials zum schrittweisen Lernen]]
16+- Beispiele im [LazPaint Repositorium](http://lazpaint.svn.sourceforge.net/viewvc/lazpaint/).
3617
3718#### Overview
3819
39-Die Funktionen haben lange Namen um verstehbar zu sein. Nahezu Alles ist erreichbar über eine Funktion oder eine Eigenschaft des TBGRABitmap-Objekts. Beispielsweise können Sie CanvasBGRA benutzen, um eine Zeichenfläche ähnlich zu TCanvas (mit Transparenz und Antialiasing) zu erhalten; und mit Canvas2D haben Sie die gleichen Merkmale wie bei [HTML canvas](<https://developer.mozilla.org/en/HTML:Canvas>).
20+Die Funktionen haben lange Namen um verstehbar zu sein. Nahezu Alles ist erreichbar über eine Funktion oder eine Eigenschaft des TBGRABitmap-Objekts. Beispielsweise können Sie CanvasBGRA benutzen, um eine Zeichenfläche ähnlich zu TCanvas (mit Transparenz und Antialiasing) zu erhalten; und mit Canvas2D haben Sie die gleichen Merkmale wie bei [HTML canvas](https://developer.mozilla.org/en/HTML:Canvas).
4021
41-Einige besondere Merkmale erfordern bestimmte Units, aber möglicherweise benötigen Sie diese nicht:
22+Einige besondere Merkmale erfordern bestimmte Units, aber möglicherweise benötigen Sie diese nicht:
4223
43- * TBGRAMultishapeFiller für antialiasierte Verbindungen bei Polygonen ist in BGRAPolygon
44- * TBGRATextEffect ist in BGRATextFX
45- * 2D Transformationen sind in BGRATransform
46- * TBGRAScene3D ist in BGRAScene3D
47- * Falls Sie Ebenen benötigen, bietet Ihnen BGRALayers eine TBGRALayeredBitmap
24+- TBGRAMultishapeFiller für antialiasierte Verbindungen bei Polygonen ist in BGRAPolygon
25+- TBGRATextEffect ist in BGRATextFX
26+- 2D Transformationen sind in BGRATransform
27+- TBGRAScene3D ist in BGRAScene3D
28+- Falls Sie Ebenen benötigen, bietet Ihnen BGRALayers eine TBGRALayeredBitmap
4829
49-Die Doppel-Pufferung ist kein Bestandteil von BGRABitmap, weil es dabei mehr um den Umgang mit Forms geht. Um ein Double-buffering zu machen, können Sie TBGRAVirtualScreen aus dem [[BGRAControls]]-Package verwenden.
30+Die Doppel-Pufferung ist kein Bestandteil von BGRABitmap, weil es dabei mehr um den Umgang mit Forms geht. Um ein Double-buffering zu machen, können Sie TBGRAVirtualScreen aus dem [[BGRAControls]]-Package verwenden.
5031
51-Abgesehen davon, arbeitet die Doppel-Pufferung in BGRABitmap wie gewohnt. Sie benötigen eine Bitmap, wo Sie Ihre Zeichnung speichern, und zeigen diese mit der Einzelanweisung Draw an.
32+Abgesehen davon, arbeitet die Doppel-Pufferung in BGRABitmap wie gewohnt. Sie benötigen eine Bitmap, wo Sie Ihre Zeichnung speichern, und zeigen diese mit der Einzelanweisung Draw an.
5233
5334#### Einfaches Beispiel
5435
55-Sie kopieren dazu die BGRABitmap-Units und linken sie zu Ihrem Projekt:
56-```
36+Sie kopieren dazu die BGRABitmap-Units und linken sie zu Ihrem Projekt:
37+
38+``` pascal
5739Uses
58- Classes, SysUtils, BGRABitmap, BGRABitmapTypes;
40+ Classes, SysUtils, BGRABitmap, BGRABitmapTypes;
5941```
6042
61-Die Unit BGRABitmapTypes enthält alle notwendigen Definitionen, aber Sie können auch einfach eine Variable vom Typ BGRABitmap deklarieren, um eine Bitmap zu laden und anzuzeigen. Dann ist der erste Schritt der, ein TBGRABitmap-Objekt zu erzeugen:
62-```
43+Die Unit BGRABitmapTypes enthält alle notwendigen Definitionen, aber Sie können auch einfach eine Variable vom Typ BGRABitmap deklarieren, um eine Bitmap zu laden und anzuzeigen. Dann ist der erste Schritt der, ein TBGRABitmap-Objekt zu erzeugen:
44+
45+``` pascal
6346var
64- bmp: TBGRABitmap;
65- begin
66- bmp := TBGRABitmap.Create(100, 100, BGRABlack); // erzeugt ein 100x100 Pixel großes Bild mit schwarzem Hintergrund
67-
68- bmp.FillRect(20, 20, 60, 60, BGRAWhite, dmSet); // zeichnet ein weißes Quadrat ohne Transparenz
69- bmp.FillRect(40, 40, 80, 80, BGRA(0, 0, 255, 128), dmDrawWithTransparency); // zeichnet ein transparentes blaues Quadrat
70- end;
71-```
47+ bmp: TBGRABitmap;
48+begin
49+ bmp := TBGRABitmap.Create(100, 100, BGRABlack); // erzeugt ein 100x100 Pixel großes Bild mit schwarzem Hintergrund
7250
73-Zuletzt wird die Bitmap angezeigt:
51+ bmp.FillRect(20, 20, 60, 60, BGRAWhite, dmSet); // zeichnet ein weißes Quadrat ohne Transparenz
52+ bmp.FillRect(40, 40, 80, 80, BGRA(0, 0, 255, 128), dmDrawWithTransparency); // zeichnet ein transparentes blaues Quadrat
53+end;
7454```
55+
56+Zuletzt wird die Bitmap angezeigt:
57+
58+``` pascal
7559procedure TFMain.FormPaint(Sender: TObject);
76- begin
77- bmp.Draw(Canvas, 0, 0, True); // zeichnet die Bitmap im opaquen Modus (schneller)
78- end;
60+begin
61+ bmp.Draw(Canvas, 0, 0, True); // zeichnet die Bitmap im opaquen Modus (schneller)
62+end;
7963```
8064
8165### Anmerkungen
8266
83-Die Pixels in einer transparenten Bitmap werden in 4 Werten gespeichert, also 4 Bytes in der Reihenfolge Blau, Grün, Rot, Alpha. Der letzte Kanal definiert die Transparenzstufe (0 bedeutet transparent, 255 bedeutet undurchsichtig/opak), die anderen Kanäle definieren die Farbe und die Luminosität.
67+Die Pixels in einer transparenten Bitmap werden in 4 Werten gespeichert, also 4 Bytes in der Reihenfolge Blau, Grün, Rot, Alpha. Der letzte Kanal definiert die Transparenzstufe (0 bedeutet transparent, 255 bedeutet undurchsichtig/opak), die anderen Kanäle definieren die Farbe und die Luminosität.
8468
85-Grundsätzlich gibt es zwei Zeichenmodi. Der erste besteht darin, die Inhaltsinformation eines Pixels vollständig zu ersetzen. Die zweite besteht darin, das vorhandene Pixel mit einem anderen zu überblenden, das nennt man Alphablending.
69+Grundsätzlich gibt es zwei Zeichenmodi. Der erste besteht darin, die Inhaltsinformation eines Pixels vollständig zu ersetzen. Die zweite besteht darin, das vorhandene Pixel mit einem anderen zu überblenden, das nennt man Alphablending.
8670
87-Die BGRABitmap-Funktionen bieten dazu 4 Modi an:
71+Die BGRABitmap-Funktionen bieten dazu 4 Modi an:
8872
89- * dmSet : ersetzt die 4 Bytes des gezeichneten Pixels. Die vorhandene Transparenz bleibt nicht erhalten.
90- * dmDrawWithTransparency : zeichnet mit Alphablending und mit Gammakorrektur (siehe unten)
91- * dmFastBlend oder dmLinearBlend : zeichnet mit Alphablending aber ohne Gammakorrektur (schneller, bewirkt aber Farbverzerrungen bei geringen Intensitäten).
92- * dmXor : wendet Xor auf jede Komponente an und enthält Alpha (falls Sie die Farben invertieren wollen, aber Alpha beibehalten, nehmen Sie BGRA(255,255,255,0) )
73+- dmSet : ersetzt die 4 Bytes des gezeichneten Pixels. Die vorhandene Transparenz bleibt nicht erhalten.
74+- dmDrawWithTransparency : zeichnet mit Alphablending und mit Gammakorrektur (siehe unten)
75+- dmFastBlend oder dmLinearBlend : zeichnet mit Alphablending aber ohne Gammakorrektur (schneller, bewirkt aber Farbverzerrungen bei geringen Intensitäten).
76+- dmXor : wendet Xor auf jede Komponente an und enthält Alpha (falls Sie die Farben invertieren wollen, aber Alpha beibehalten, nehmen Sie BGRA(255,255,255,0) )
9377
9478### Integrierte Zeichenfunktionen
9579
96- * Zeichnen/Löschen von Pixeln
97- * Zeichnen einer Linie mit oder ohne Antialiasing
98- * Koordinaten in Fließkommagenauigkeit
99- * Stiftbreite in Fließkommagenauigkeit
100- * Rechteck (gerahmt oder gefüllt)
101- * Ellipse und Polygone mit Antialiasing
102- * Spline-Berechnung (abgerundete Kurven)
103- * einfache Füllung (Floodfill) oder progressive Füllung
104- * Farbverläufe (linear, radial...)
105- * abgerundete Rechtecke
106- * Texte mit Transparenz
80+- Zeichnen/Löschen von Pixeln
81+- Zeichnen einer Linie mit oder ohne Antialiasing
82+- Koordinaten in Fließkommagenauigkeit
83+- Stiftbreite in Fließkommagenauigkeit
84+- Rechteck (gerahmt oder gefüllt)
85+- Ellipse und Polygone mit Antialiasing
86+- Spline-Berechnung (abgerundete Kurven)
87+- einfache Füllung (Floodfill) oder progressive Füllung
88+- Farbverläufe (linear, radial...)
89+- abgerundete Rechtecke
90+- Texte mit Transparenz
10791
10892### Zeichnen auf der Leinwand
10993
110-Sie können mit einem _Canvas_ -Objekt zeichnen, mit den üblichen Funktionen, aber ohne Antialiasing. Die Opazität (Undurchsichtbarkeit) der Zeichnung ist durch die Eigenschaft _CanvasOpacity_ definiert. Dieses Verfahren ist langsamer, weil dazu Bildumformungen angewendet werden.
94+Sie können mit einem *Canvas*-Objekt zeichnen, mit den üblichen Funktionen, aber ohne Antialiasing. Die Opazität (Undurchsichtbarkeit) der Zeichnung ist durch die Eigenschaft *CanvasOpacity* definiert. Dieses Verfahren ist langsamer, weil dazu Bildumformungen angewendet werden.
11195
11296### Direkter Zugriff auf ein Pixel
11397
114-Zur direkten Bearbeitung von Pixels gibt es zwei Eigenschaften, _Data_ und _Scanline_. Die erste gibt einen Zeiger auf das erste Pixel im Bild zurück, die zweite hingegen einen Zeiger auf das erste Pixel einer bestimmten Zeile.
115-```
98+Zur direkten Bearbeitung von Pixels gibt es zwei Eigenschaften, *Data* und *Scanline*. Die erste gibt einen Zeiger auf das erste Pixel im Bild zurück, die zweite hingegen einen Zeiger auf das erste Pixel einer bestimmten Zeile.
99+
100+``` pascal
116101var
117- bmp: TBGRABitmap;
118- p: PBGRAPixel;
119- n: integer;
120-
121- begin
122- bmp := TBGRABitmap.Create('image.png');
123- p := bmp.Data;
124- for n := bmp.NbPixels-1 downto 0 do begin
125- p^.red := not p^.red; // invertiert den roten Kanal
126- inc(p);
127- end;
128- bmp.InvalidateBitmap; // beachten Sie, dass wir direkt auf die Pixels zugegriffen haben
129- bmp.Draw(Canvas, 0, 0, True);
130- bmp.Free;
131- end;
102+ bmp: TBGRABitmap;
103+ p: PBGRAPixel;
104+ n: integer;
105+
106+begin
107+ bmp := TBGRABitmap.Create('image.png');
108+ p := bmp.Data;
109+ for n := bmp.NbPixels-1 downto 0 do begin
110+ p^.red := not p^.red; // invertiert den roten Kanal
111+ inc(p);
112+ end;
113+ bmp.InvalidateBitmap; // beachten Sie, dass wir direkt auf die Pixels zugegriffen haben
114+ bmp.Draw(Canvas, 0, 0, True);
115+ bmp.Free;
116+end;
132117```
133118
134-Es ist erforderlich, die Funktion _InvalidateBitmap_ aufzurufen, um das Bild beim nächsten Aufruf von _Draw_ neu zeichnen zu lassen. Beachten Sie: Die Reihenfolge der Zeilen kann auch umgekehrt sein, abhängig von der Eigenschaft _LineOrder_.
119+Es ist erforderlich, die Funktion *InvalidateBitmap* aufzurufen, um das Bild beim nächsten Aufruf von *Draw* neu zeichnen zu lassen. Beachten Sie: Die Reihenfolge der Zeilen kann auch umgekehrt sein, abhängig von der Eigenschaft *LineOrder*.
135120
136-Siehe auch den Vergleich zwischen verschiedenen [[Fast direct pixel access|Methoden des direkten Pixel-Zugriffs]].
121+Siehe auch den Vergleich zwischen verschiedenen [[Fast direct pixel access|Methoden des direkten Pixel-Zugriffs]].
137122
138123### Bildmanipulation
139124
140-Verfügbare Filter (mit der Vorsilbe Filter):
125+Verfügbare Filter (mit der Vorsilbe Filter):
141126
142- * Radial blur : nicht-direktionale Unschärfe
143- * Motion blur : richtungsabhängige Bewegungsunschärfe
144- * Custom blur : benutzerdefinierte Unschärfe (verwendet eine Maske)
127+- Radial blur : nicht-direktionale Unschärfe
128+- Motion blur : richtungsabhängige Bewegungsunschärfe
129+- Custom blur : benutzerdefinierte Unschärfe (verwendet eine Maske)
145130
146- * Median : berechnet den Median der Farben um jedes Pixel herum, macht Ecken weicher
147- * Pixelate : vereinfacht das Bild durch Rechtecke gleicher Farbe
148- * Smooth : macht das gesamte Bild weicher, Gegenteil von Sharpen
149- * Sharpen : verstärkt Konturen, Gegenteil von Smooth
131+- Median : berechnet den Median der Farben um jedes Pixel herum, macht Ecken weicher
132+- Pixelate : vereinfacht das Bild durch Rechtecke gleicher Farbe
133+- Smooth : macht das gesamte Bild weicher, Gegenteil von Sharpen
134+- Sharpen : verstärkt Konturen, Gegenteil von Smooth
150135
151- * Contour : zeichnet Konturen auf einem weißen Hintergrund (wie eine Bleistiftzeichnung)
152- * Emboss : zeichnet Konturen mit Schatten
153- * EmbossHighlight : zeichnet Konturen einer Auswahl mit definierten Graustufen
136+- Contour : zeichnet Konturen auf einem weißen Hintergrund (wie eine Bleistiftzeichnung)
137+- Emboss : zeichnet Konturen mit Schatten
138+- EmbossHighlight : zeichnet Konturen einer Auswahl mit definierten Graustufen
154139
155- * Grayscale : konvertiert Farben in Graustufen mit Gammakorrektur
156- * Normalize : verwende den vollen Umfang der Luminosität von Farben
140+- Grayscale : konvertiert Farben in Graustufen mit Gammakorrektur
141+- Normalize : verwende den vollen Umfang der Luminosität von Farben
157142
158- * Rotate : Drehung des Bildes um einen Punkt
159- * Sphere : verzerrt das Bild wie in einer Projektion auf eine Kugel
160- * Twirl : verzerrt das Bild mit einem Strudel-Effekt
161- * Cylinder : verzerrt das Bild wie in einer Projektion auf einen Zylinder
162- * Plane : berechnet eine hochpräzise Projektion auf eine waagrechte Ebene. Dies ist recht langsam.
163- * SmartZoom3 : vergrößert das Bild 3x und entdeckt Ränder, ein nützlicher Zoom bei alten Spielesprites
143+- Rotate : Drehung des Bildes um einen Punkt
144+- Sphere : verzerrt das Bild wie in einer Projektion auf eine Kugel
145+- Twirl : verzerrt das Bild mit einem Strudel-Effekt
146+- Cylinder : verzerrt das Bild wie in einer Projektion auf einen Zylinder
147+- Plane : berechnet eine hochpräzise Projektion auf eine waagrechte Ebene. Dies ist recht langsam.
148+- SmartZoom3 : vergrößert das Bild 3x und entdeckt Ränder, ein nützlicher Zoom bei alten Spielesprites
164149
165-Einige Funktionen scheinen nicht als Filter auf, weil sie kein neu erstelltes Bild zurückliefern. Sie verändern das vorhandene Bild:
150+Einige Funktionen scheinen nicht als Filter auf, weil sie kein neu erstelltes Bild zurückliefern. Sie verändern das vorhandene Bild:
166151
167- * VerticalFlip : vertikale Spiegelung
168- * HorizontalFlip : horizontale Spiegelung
169- * Negative : invertiert die Farben
170- * LinearNegative : inveriert ohne Gammakorrektur
171- * SwapRedBlue : tauscht den roten und den blauen Kanal aus (zu Umwandeln von BGRA und RGBA)
172- * ConvertToLinearRGB : zum Umwandeln von sRGB zu RGB. Beachten Sie: Das von BGRABitmap verwendete Format ist sRGB bei dmDrawWithTransparency und RGB bei dmLinearBlend.
173- * ConvertFromLinearRGB : konvertiert von RGB zu sRGB.
152+- VerticalFlip : vertikale Spiegelung
153+- HorizontalFlip : horizontale Spiegelung
154+- Negative : invertiert die Farben
155+- LinearNegative : inveriert ohne Gammakorrektur
156+- SwapRedBlue : tauscht den roten und den blauen Kanal aus (zu Umwandeln von BGRA und RGBA)
157+- ConvertToLinearRGB : zum Umwandeln von sRGB zu RGB. Beachten Sie: Das von BGRABitmap verwendete Format ist sRGB bei dmDrawWithTransparency und RGB bei dmLinearBlend.
158+- ConvertFromLinearRGB : konvertiert von RGB zu sRGB.
174159
175160### Bildüberblendung
176161
177-PutImage (= Ersetzen) ist die normale Zeichenfunktion. Im Gegensatz dazu erlaubt es **BlendImage** , Bilder zu überblenden, wie mittels Ebenen bei kommerziellen Bildbearbeitungsprogrammen. Die folgenden Modi sind verfügbar:
162+PutImage (= Ersetzen) ist die normale Zeichenfunktion. Im Gegensatz dazu erlaubt es **BlendImage**, Bilder zu überblenden, wie mittels Ebenen bei kommerziellen Bildbearbeitungsprogrammen. Die folgenden Modi sind verfügbar:
178163
179- * LinearBlend : einfache Überlagerung ohne Gammakorrektur (äquivalent zu dmFastBlend)
180- * Transparent : Überlagerung mit Gammakorrektur
181- * Multiply : Multiplikation von Farbwerten (mit Gammakorrektur)
182- * LinearMultiply : Multiplikation von Farbwerten (ohne Gammakorrektur)
183- * Additive : Addition von Farbwerten (mit Gammakorrektur)
184- * LinearAdd : Addition von Farbwerten (ohne Gammakorrektur)
185- * Difference : Differenz von Farbwerten (mit Gammakorrektur)
186- * LinearDifference : Differenz von Farbwerten (ohne Gammakorrektur)
187- * Negation : löscht gemeinsame Farben (mit Gammakorrektur)
188- * LinearNegation : löscht gemeinsame Farben (ohne Gammakorrektur)
189- * Reflect, Glow : Reflexion, Glühen - für Lichteffekte
190- * ColorBurn, ColorDodge, Overlay, Screen : verschiedene Filter
191- * Lighten : Aufhellen - erhält die hellen Farbwerte
192- * Darken : Abdunkeln - erhält die dunklen Farbwerte
193- * Xor : ausschließendes Oder von Farbwerten
164+- LinearBlend : einfache Überlagerung ohne Gammakorrektur (äquivalent zu dmFastBlend)
165+- Transparent : Überlagerung mit Gammakorrektur
166+- Multiply : Multiplikation von Farbwerten (mit Gammakorrektur)
167+- LinearMultiply : Multiplikation von Farbwerten (ohne Gammakorrektur)
168+- Additive : Addition von Farbwerten (mit Gammakorrektur)
169+- LinearAdd : Addition von Farbwerten (ohne Gammakorrektur)
170+- Difference : Differenz von Farbwerten (mit Gammakorrektur)
171+- LinearDifference : Differenz von Farbwerten (ohne Gammakorrektur)
172+- Negation : löscht gemeinsame Farben (mit Gammakorrektur)
173+- LinearNegation : löscht gemeinsame Farben (ohne Gammakorrektur)
174+- Reflect, Glow : Reflexion, Glühen - für Lichteffekte
175+- ColorBurn, ColorDodge, Overlay, Screen : verschiedene Filter
176+- Lighten : Aufhellen - erhält die hellen Farbwerte
177+- Darken : Abdunkeln - erhält die dunklen Farbwerte
178+- Xor : ausschließendes Oder von Farbwerten
194179
195-Diese Modi können in TBGRALayeredBitmap benutzt werden, was es etwas vereinfacht, weil BlendImage nur die grundlegenden Überblendungsoperationen bietet.
180+Diese Modi können in TBGRALayeredBitmap benutzt werden, was es etwas vereinfacht, weil BlendImage nur die grundlegenden Überblendungsoperationen bietet.
196181
197182### Screenshots
198183
199-[![Lazpaint contour.png](/wiki-images/5/5d/Lazpaint_contour.png)](</File:Lazpaint_contour.png>) [![Lazpaint curve redim.png](/wiki-images/2/25/Lazpaint_curve_redim.png)](</File:Lazpaint_curve_redim.png>) [![Bgra wirecube.png](/wiki-images/2/23/Bgra_wirecube.png)](</File:Bgra_wirecube.png>) [![Bgra chessboard.jpg](/wiki-images/b/b0/Bgra_chessboard.jpg)](</File:Bgra_chessboard.jpg>)
184+![](/wiki-images/5/5d/Lazpaint_contour.png) ![](/wiki-images/2/25/Lazpaint_curve_redim.png) ![](/wiki-images/2/23/Bgra_wirecube.png) ![](/wiki-images/b/b0/Bgra_chessboard.jpg)
200185
201186### Lizenz
202187
203-modified LGPL
188+modified LGPL
204189
205-Autor: [Johann ELSASS](<http://johann-elsass.net>) ([Facebook](<http://www.facebook.com/johann.elsass.1>))
190+Autor: [Johann ELSASS](http://johann-elsass.net) ([Facebook](http://www.facebook.com/johann.elsass.1))
206191
207192### Download
208193
209194Letzte Version : <https://github.com/bgrabitmap/bgrabitmap/releases>
210195
211-Paket von Sourceforge enthält [[LazPaint]] : <http://sourceforge.net/projects/lazpaint/files/src/> (veraltet max. ver.9.2.2)
196+Paket von Sourceforge enthält [[LazPaint]] : <http://sourceforge.net/projects/lazpaint/files/src/> (veraltet max. ver.9.2.2)
212197
213198GitHub: <https://github.com/bgrabitmap/lazpaint/>
214199
215200---
216-*From the Free Pascal wiki, page "BGRABitmap/de", as the Internet Archive kept it on 2024-09-13. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
201+*From the Free Pascal wiki, page "BGRABitmap/de", as it stood on 2022-09-11 after a change by Circular, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history