Dieses Tutorial wurde als Antwort auf die folgende PM geschrieben, die ich erhalten habe:
Von: FireFly
Ich weiß genug (sagt "pyro", der einige meiner Codes überprüft hat) C#, um einige einfache Plugins mit Codelab zu erstellen, aber ich habe absolut keine Ahnung, wo ich anfangen soll. Ich habe versucht, einen "Punkt in der Mitte" (aus enormators Effekte) zu machen, weil es klang die einfachste. Könnten Sie einen einfacheren Vorschlag für den Anfang machen? Wenn Sie mir sonst noch helfen könnten, wäre ich Ihnen ebenfalls dankbar.
Danke, FireFly.
Hier ist meine Antwort:
Sie wollen also lernen, wie Sie Ihr eigenes Paint.NET-Plugin schreiben? Prima. Ich werde Ihnen zeigen, wie es geht.
Um dieser Reihe von Tutorials folgen zu können, müssen Sie das CodeLab-Plugin installieren und Sie benötigen zumindest ein Grundverständnis der Programmiersprache C#.NET. Wenn Sie Erfahrung mit C, C++ oder Pascal haben, werden Sie wahrscheinlich gut zurechtkommen. Wenn nicht, müssen Sie sich zuerst mit C# vertraut machen. Nur zu, ich warte...
Können wir anfangen? OK, los geht's...
HINWEIS: Bevor wir beginnen, sollten Sie unbedingt die Übersichtsseite lesen, die den grundlegenden Zweck von Effekt-Plugins erklärt und wie Paint.NET mit Plugins arbeitet.
Wenn man ein Effekt-Plugin erstellen will, braucht man zunächst eine Vorstellung davon, was es tun soll. In der Regel hat man ein Problem oder eine Reihe von Schritten, die Sie immer wiederholen müssen. Dies sind gute Kandidaten für Probleme, die Sie mit einem Effekt-Plugin lösen können.
In diesem ersten Tutorial werden wir einen Effekt erstellen, der einen einzelnen schwarzen Punkt in der Mitte der aktuellen Auswahl platziert. Dies ist nützlich, wenn Sie beim Zeichnen von Linien oder anderen Formen die genaue Mitte der Auswahl kennen müssen und diese zentriert sein soll. Ich habe mich für diesen Effekt entschieden, weil er keine Steuerelemente der Benutzeroberfläche (UI) erfordert. Wir werden uns in Lektion 2 mit UI-Steuerungen befassen.
Hier Beispielbild
Erinnern Sie sich, in der Übersicht, wenn Sie ein Effekt-Plugin mit CodeLab erstellen, müssen Sie nur die Render()-Funktion schreiben, und ich habe Ihnen gesagt, dass wir sogar eine Vorlage haben, um Ihnen den Einstieg zu erleichtern. Öffnen wir Paint.NET und führen CodeLab aus, um die Vorlage zu sehen.
Um unser "Dot at Center"-Plugin zu erstellen, beginnen wir mit dem Standardskript von CodeLab:
Hier Beispielcode
Wenn Sie sich das Standardscript ansehen, werden Sie feststellen, dass das Script innerhalb der verschachtelten x,y-Schleifen ein Pixel von der src-Oberfläche liest und es in der Variablen currentPixel speichert. Dann schreibt es dieses Pixel in die dst-Oberfläche. Das Skript kopiert alle Pixel direkt von der Quellfläche (src) auf die Zielfläche (dst), ohne die Pixel zu verändern. Im Grunde genommen tut es gar nichts.
Beginnen wir mit diesem Script und nehmen wir die notwendigen Änderungen vor, um unseren Effekt "Punkt in der Mitte" zu implementieren.
Am Anfang des Scripts sehen Sie die folgenden Zeilen:
Hier Beispielcode
Wie bereits erwähnt, benötigen wir für diesen Effekt keine Benutzeroberfläche, also löschen Sie alle diese Zeilen.
Mit Blick auf unsere Render()-Funktion, werden wir nicht die primäre, sekundäre Farbe oder die Pinselbreite benötigen, so gehen Sie vor und löschen Sie diese Zeilen:
Hier Beispielcode
Wir brauchen den Mittelpunkt unserer Auswahl, also behalten Sie diese Zeilen bei:
Hier Beispielcode
Schließlich ändern wir die innere Schleife so, dass sie alle Pixel von der Ausgangsleinwand auf die Zielleinwand kopiert, es sei denn, wir arbeiten am mittleren Pixel. In diesem Fall wird dieses Pixel durch ein schwarzes Pixel ersetzt.
Da der Effekt in einer Schleife alle Pixel auf der Zielleinwand durchläuft, wissen wir, dass wir am mittleren Pixel arbeiten, wenn die Variable y gleich "centerY" und die Variable x gleich "centerX" ist. In C# sieht diese Bedingung wie folgt aus:
Hier Beispielcode
Wir ersetzen die "// comments" in unserem Standardskript durch diesen Bedingungscode, so dass es jetzt wie folgt aussieht:
Hier Beispielcode
Wenn diese Bedingung erfüllt ist und wir mit dem mittleren Pixel arbeiten, müssen wir es durch ein schwarzes Pixel ersetzen. Wir können das auf diese Weise tun:
Hier Beispielcode
Ihr endgültiges Script sollte also wie folgt aussehen:
Hier Beispielcode
Das war's!
Das Einzige, was wir selbst schreiben mussten, um den "Dot at Center"-Algorithmus zu implementieren, war dieser Teil:
Hier Beispielcode
Alles andere wurde von CodeLab geschrieben.
Wenn Sie nun Ihren ersten Effekt erstellt haben und ihn zu einem festen Bestandteil von Paint.NET machen möchten, folgen Sie einfach den Schritten auf der Seite Erstellen einer DLL-Datei.