Difference between revisions of "BGRABitmap tutorial/de"

From Lazarus wiki
Jump to navigationJump to search
m (Category:Graphics)
 
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{BGRABitmap_tutorial}}
 
{{BGRABitmap_tutorial}}
  
Dieses erste Tutorial zeigt, wie Sie die Bibliothek [[BGRABitmap]] einsetzen können.
+
{{BGRABitmap_tutorial_index/de}}
  
=== Erzeugen Sie ein neues Projekt ===
+
Willkommen im Index der Tutorials für die Bibliothek [[BGRABitmap/de|BGRABitmap]]. Sie können diese Tutorials entweder der Reihe nach durchsehen (mittels der Zeile am Seitenanfang) oder über die folgenden Kategorien:
  
Erzeugen Sie eine grafische Anwendung über den Menüpunkt '''Projekt > Neues Projekt...'''.
+
=== Installation von BGRABitmap und Zeichnen einfacher Figuren ===
  
Die Unit des Hauptformulars sollte so aussehen:
+
Die Image-Objekte von TBGRABitmap haben Funktionen zum Zeichnen und akzeptieren Koordinaten im Fließkomma- oder Integerformat.
<delphi>unit UMain;
 
  
{$mode objfpc}{$H+}
+
* [[BGRABitmap tutorial 1/de|Installieren von BGRABitmap (Nr. 1)]]
 +
* [[BGRABitmap tutorial 2/de|Laden und Anzeigen eines Bildes (Nr. 2)]]
 +
* [[BGRABitmap tutorial 3/de|Zeichnen mit der Maus (Nr. 3)]]
 +
* [[BGRABitmap tutorial 6/de|Linienarten (Nr. 6)]]
 +
* [[BGRABitmap tutorial 7/de|Splines und Bézierkurven (Nr. 7)]]
 +
* [[BGRABitmap tutorial 12/de|Textfunktionen (Nr. 12)]]
 +
* [[BGRABitmap tutorial 13/de|Integerkoordinaten und Fließkommakoordinaten (Nr. 13)]]
  
interface
+
=== Texturen und Scanner ===
  
uses
+
Die Pixel eines Bildes sind eine Tabelle im Speicher, die die Werte im TBGRAPixel-Format enthält. Auf dieser Ebene sind verschiedene Operationen möglich.
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
 
  
type
+
* [[BGRABitmap tutorial 4/de|Direkter Zugriff auf die Pixel mittels Scanline (Nr. 4)]]
 +
* [[BGRABitmap tutorial 5/de|Kombinieren von Ebenen und Masken (Nr. 5)]]
 +
* [[BGRABitmap tutorial 8/de|Erzeugen von Texturen (Nr. 8)]]
 +
* [[BGRABitmap tutorial 9/de|Phong-Schattierung und Texturen (Nr. 9)]]
 +
* [[BGRABitmap tutorial 10/de|Textur-Transformationen (Nr. 10)]]
 +
* [[BGRABitmap tutorial 11/de|Kombinieren von Transformationen  mittels Scannern (Nr. 11)]]
  
  { TForm1 }
+
=== Andere Zeichnungskontexte ===
  
  TForm1 = class(TForm)
+
Es sind auch andere Kontexte möglich, dadurch sind weitere grundlegende Zeichnungsfunktionen verfügbar.
  private
 
    { private declarations }
 
  public
 
    { public declarations }
 
  end;
 
  
var
+
* Standard Canvas (Eigenschaften Canvas und CanvasOpacity): vermeiden Sie deren Einsatz wegen der Langsamkeit beim Konvertieren von Bitmapdaten
  Form1: TForm1;
+
* Canvas mit den Merkmalen von BGRABitmap (Eigenschaft CanvasBGRA, Brush und Pen haben eine Eigenschaft Opacity)
 +
** [http://www.youtube.com/watch?v=HGYSLgtYx-U How to convert your application from TCanvas to CanvasBGRA (video)]
 +
* [[BGRABitmap tutorial 14/de|Zeichnen auf einer 2D-Canvas mit affinen Transformationen (Nr. 14)]]
 +
* [[BGRABitmap tutorial 15/de|Darstellung von 3D-Objekten (Nr. 15)]]
 +
* [[BGRABitmap tutorial 16/de|Verwenden von Texturen an 3D-Objekten (Nr. 16)]]
  
implementation
+
=== Hilfsklassen ===
  
initialization
+
Einige der verfügbaren Klassen sind vielleicht auch für Sie nützlich.
  {$I UMain.lrs}
 
  
end.</delphi>
+
* TBGRATextEffect, in der Unit BGRATextFX, erlaubt es, das Zeichnen von Textzeilen vorzubereiten, oder Effekte wie Konturen oder Schatten hinzuzufügen.
 +
* TBGRALayeredBitmap, in der Unit BGRALayers, erlaubt das Erzeugen einer Bitmap mit mehreren Ebenen. Die Units BGRAPaintNet und BGRAOpenRaster enthalten Implementierungen zum Lesen und Schreiben im Paint.NET-Format (nur Lesen) und OpenRaster-Format (Lesen und Schreiben).
 +
* Die Units BGRAGradientScanner und BGRATransform enthalten Scanner für verschiedene Effekte.
 +
* Die Unit BGRAGradients enthält Prozeduren zu Erzeugen von Farbverläufen und die Klasse TPhongShading für Phong-Schattierungen.
 +
* TBGRACompressableBitmap, in der Unit BGRACompressableBitmap, erlaubt es, Bilder zu Speichern und zu Komprimieren.
  
Falls Sie sie nicht finden, zeigt Ihnen '''Strg-F12''' eine Dateiliste an.
+
Andere Units enthalten Low-Level-Funktionen. Sie sollten diese nicht zum Normalgebrauch einsetzen.
  
Speichern Sie Ihr Projekt in der Nähe der Bibliothek 'BGRABitmap' über den Menüpunkt '''Datei > Alles speichern'''.
+
[[Category:Graphics/de]]
 +
[[Category:Tutorials/de]]
 +
[[Category: BGRABitmap/de]]
  
=== Eine Referenz auf BGRABitmap hinzufügen===
+
{{BGRABitmap_tutorial_index/de}}
  
Fügen Sie in der Uses-Klausel gleich hinter 'Dialogs' eine Referenz auf BGRABitmap und BGRABitmapTypes ein.
+
Seite übersetzt von: --[[User:Billyraybones|billyraybones]] 21:11, 2 November 2012 (UTC)
 
 
<delphi>uses
 
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
 
  BGRABitmap, BGRABitmapTypes;</delphi>
 
 
 
Gehen Sie zu den Compileroptionen mit dem Menüpunkt '''Projekt > Projekteinstellungen > Compilereinstellungen'''. Im Pfad für 'Andere Units' fügen Sie den relativer Pfad zu BGRABitmap hinzu. Zum Beispiel, wenn BGRABitmap in einem Verzeichnis neben dem Ihres Projektes ist, würde der relative Pfad lauten: "..\BGRABitmap".
 
 
 
Wenn Sie die BGRABitmap-Dateien in Ihren Projektordner kopieren, brauchen Sie keinen solchen Suchpfad angeben. Dennoch, das ist nicht empfehlenswert, weil es bei mehreren Projekten, die diese Bibliothek verwenden, umständlich wäre, auf eine neue Version der Bibliothek zu aktualisieren.
 
 
 
Wenn Sie sich jetzt mit den relativen Pfaden verirrt haben, können Sie auch die Unit BGRABitmap zu Ihrem Projekt hinzufügen (und damit auch den relativen Pfad). Öffnen Sie dazu innerhalb Ihres Projektes die Datei 'bgrabitmap.pas'. Wählen Sie den Menüpunkt '''Projekt > Datei im Editor ins Projekt aufnehmen'''. Lazarus fragt Sie dann, ob Sie die Datei und das Verzeichnis zu Ihrem Projekt hinzufügen wollen.
 
 
 
=== Fügen Sie einige Zeichenbefehle hinzu ===
 
 
 
Fügen Sie ein Ereignis zum Zeichnen hinzu. Dazu klicken Sie auf das Formular, gehen zum Objektinspektor, zum Karteireiter Ereignisse und doppelklicken Sie auf die Zeile 'OnPaint'. Lazarus fügt der Unit des Hauptformulars automatisch einen FormPaint-Handler hinzu. Ergänzen Sie zum Beispiel den folgenden Code:
 
<delphi>procedure TForm1.FormPaint(Sender: TObject);
 
var bmp: TBGRABitmap;
 
begin
 
  bmp := TBGRABitmap.Create(ClientWidth, ClientHeight, BGRABlack);
 
  bmp.FillRect(20, 20, 100, 40, BGRA(255,192,0), dmSet);  //fill an orange rectangle
 
  bmp.Draw(Canvas, 0, 0, True);                          //render BGRABitmap on the form
 
  bmp.Free;                                              //free memory
 
end;</delphi>
 
 
 
Wie Sie sehen, deklarieren wir eine Variable TBGRABitmap und erzeugen sie anschließend. Es gibt mehrere unterschiedliche Konstruktoren für TBGRABitmap. Dieser  hier verwendete erzeugt eine Bitmap der Größe ClientWidth x ClientHeight und füllt sie mit Schwarz. ClientWidth und ClientHeight sind Eigenschaften des Formulars, die den für Zeichnungen verfügbaren Platz des Formulars angeben.
 
 
 
Die Prozedur FillRect erwartet die üblichen Parameter zum Zeichnen eines Rechtecks, das ist die obere, linke Ecke gefolgt von der unteren, rechten Ecke plus 1. Das bedeutet, dass das Pixel bei (100,40) vom Rechteck ausnommen ist.
 
 
 
Anschließend folgen ein Farbparameter mit den Komponenten rot/grün/blau und ein Zeichenmodus. Bei 'dmSet' werden einfach die Pixel ersetzt.
 
 
 
Vergessen Sie nicht, das Objekt nach der Verwendung wieder frei zu geben, um Speicherlecks zu vermeiden.
 
 
 
=== Resultierender Code ===
 
 
 
Sie sollten jetzt den folgenden Code haben:
 
<delphi>unit UMain;
 
 
 
{$mode objfpc}{$H+}
 
 
 
interface
 
 
 
uses
 
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
 
  BGRABitmap, BGRABitmapTypes;
 
 
 
type
 
 
 
  { TForm1 }
 
 
 
  TForm1 = class(TForm)
 
    procedure FormPaint(Sender: TObject);
 
  private
 
    { private declarations }
 
  public
 
    { public declarations }
 
  end;
 
 
 
var
 
  Form1: TForm1;
 
 
 
implementation
 
 
 
{ TForm1 }
 
 
 
procedure TForm1.FormPaint(Sender: TObject);
 
var bmp: TBGRABitmap;
 
begin
 
  bmp := TBGRABitmap.Create(ClientWidth,ClientHeight,BGRABlack);
 
  bmp.FillRect(20,20,100,40,BGRA(255,192,0),dmSet);
 
  bmp.Draw(Canvas,0,0,True);
 
  bmp.Free;
 
end;
 
 
 
initialization
 
  {$I UMain.lrs}
 
 
 
end.</delphi>
 
 
 
=== Starten Sie das Programm ===
 
 
 
Sie sollten ein schwarz gefülltes Fenster mit einem orangen Rechteck darin erhalten.
 
 
 
[[Image:BGRATutorial1.png]]
 
 
 
[[BGRABitmap tutorial 2/de|Zum nächsten Tutorial (Laden eines Bildes)]]
 
 
 
[[Category:Graphics]]
 

Latest revision as of 16:30, 11 July 2015

Deutsch (de) English (en) español (es) français (fr) русский (ru)

Home | Tutorial 1 | Tutorial 2 | Tutorial 3 | Tutorial 4 | Tutorial 5 | Tutorial 6 | Tutorial 7 | Tutorial 8 | Tutorial 9 | Tutorial 10 | Tutorial 11 | Tutorial 12 | Tutorial 13 | Tutorial 14 | Tutorial 15 | Tutorial 16 | Edit

Willkommen im Index der Tutorials für die Bibliothek BGRABitmap. Sie können diese Tutorials entweder der Reihe nach durchsehen (mittels der Zeile am Seitenanfang) oder über die folgenden Kategorien:

Installation von BGRABitmap und Zeichnen einfacher Figuren

Die Image-Objekte von TBGRABitmap haben Funktionen zum Zeichnen und akzeptieren Koordinaten im Fließkomma- oder Integerformat.

Texturen und Scanner

Die Pixel eines Bildes sind eine Tabelle im Speicher, die die Werte im TBGRAPixel-Format enthält. Auf dieser Ebene sind verschiedene Operationen möglich.

Andere Zeichnungskontexte

Es sind auch andere Kontexte möglich, dadurch sind weitere grundlegende Zeichnungsfunktionen verfügbar.

Hilfsklassen

Einige der verfügbaren Klassen sind vielleicht auch für Sie nützlich.

  • TBGRATextEffect, in der Unit BGRATextFX, erlaubt es, das Zeichnen von Textzeilen vorzubereiten, oder Effekte wie Konturen oder Schatten hinzuzufügen.
  • TBGRALayeredBitmap, in der Unit BGRALayers, erlaubt das Erzeugen einer Bitmap mit mehreren Ebenen. Die Units BGRAPaintNet und BGRAOpenRaster enthalten Implementierungen zum Lesen und Schreiben im Paint.NET-Format (nur Lesen) und OpenRaster-Format (Lesen und Schreiben).
  • Die Units BGRAGradientScanner und BGRATransform enthalten Scanner für verschiedene Effekte.
  • Die Unit BGRAGradients enthält Prozeduren zu Erzeugen von Farbverläufen und die Klasse TPhongShading für Phong-Schattierungen.
  • TBGRACompressableBitmap, in der Unit BGRACompressableBitmap, erlaubt es, Bilder zu Speichern und zu Komprimieren.

Andere Units enthalten Low-Level-Funktionen. Sie sollten diese nicht zum Normalgebrauch einsetzen.

Home | Tutorial 1 | Tutorial 2 | Tutorial 3 | Tutorial 4 | Tutorial 5 | Tutorial 6 | Tutorial 7 | Tutorial 8 | Tutorial 9 | Tutorial 10 | Tutorial 11 | Tutorial 12 | Tutorial 13 | Tutorial 14 | Tutorial 15 | Tutorial 16 | Edit

Seite übersetzt von: --billyraybones 21:11, 2 November 2012 (UTC)