Hier mein allseits beliebtes Tutorial zum Programmieren von PDN Plugins in VB.NET
In diesem Tutorial erkläre ich euch wie man PDN Plugins mit VB 2008 programmieren kann.
In diesem ersten Tutorial erkläre ich euch wie man "Hallo Welt!" in die mitte von einem Bild zeichnen kann!
Als erstes Öffnet ihr Visual Basic und erstellt ein
neues
Klassenbibliothek Projekt.
Als nächstes müssen wir die Klassenbibliotheken von PDN
importieren, dazu klickt ihr im Menü auf:
Projekt -> Alle Dateien Anzeigen
und auf
Projekt -> Verweis hinzufügen.
Danach wechselt ihr zu der
Durchsuchen Registerkarte und wechselt in euren PDN ordner:
Als nächstes haltet ihr
strg gedrückt und wählt folgende Dateien aus und klickt auf OK:
Nun müssen wir noch die System.Drawing Klasse importieren, klickt dazu wieder auf
Projekt -> Verweis hinzufügen. und wählt diese Datei aus und klickt auf
OK:
Als nächstes solltet ihr in eurem
Projektmappen-Explorer folgende Dateien haben:
Jetzt können wir endlich mit dem code schreiben beginnen

Öffnet die datei
Class1.vb(falls sie noch nicht geöffnet ist).
Nun müssen wir die verweisten DLLs in unserer Klasse importieren,
Dazu schreibt ihr folgenden Code ganz oben hin(in eine zeile vor
Public Class {PROJEKTNAME}):
|
Quellcode
|
1
2
3
|
Imports PaintDotNet
Imports PaintDotNet.Effects
Imports System.Drawing
|
Damit wir den Effect später auch Rendern können, müssen wir die Effect Klasse Erben.
Schreibt folgenden Code direkt unter
Public Class {PROJEKTNAME}:
|
Quellcode
|
1
|
Inherits Effect
|
Jetzt müssen wir das Plugin "erstellen" damit wir es auch später verwenden können,
schreibt dazu folgenden Code unter
Inherits Effect:
|
Quellcode
|
1
2
3
4
5
|
Dim MyStr As String = "Hallo Welt!" 'Das ist der Text der auf das Bild geschrieben wird!
Public Sub New()
MyBase.New("{PLUGINNAME}", Image.FromFile("{PFAD ZU DEM ICON}"), "{UNTERMENÜ}")
End Sub
|
ersetzt {PLUGINNAME} durch den namen des Plugins, in diesem Fall Hallo Welt,
ersetzt {PFAD ZU DEM ICON} durch den Vollständigen Pfad des Icons von eurem Plugin, das Icon muss 16x16 pxl. groß sein!!!
ersetzt {UNTERMENÜ} durch den Namen des Untermenüs, z.B. Meine Plugins
unten wird jetzt ein Fehler in der Liste stehen, das muss uns aber nicht interessieren
als nächstes wollen wir die Sub Class zum Rendern schreiben, fügt dafür folgenden Code ein:
|
Quellcode
|
1
2
3
|
Public Overloads Overrides Sub Render(ByVal parameters As PaintDotNet.Effects.EffectConfigToken, ByVal dstArgs As PaintDotNet.RenderArgs, ByVal srcArgs As PaintDotNet.RenderArgs, ByVal rois() As System.Drawing.Rectangle, ByVal startIndex As Integer, ByVal length As Integer)
End Sub
|
In diese Klasse Schreiben wir jetzt folgenden Code:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Try
Dim F As New Font("Arial", 12) ' Die Schriftart + Größe
Using g As Graphics = dstArgs.Graphics
'Berechne die Mitte der X Achse
Dim X_Pos As Integer = (srcArgs.Bitmap.Width / 2) - (g.MeasureString(MyStr, F).Width / 2)
'Berechne die Mitte der Y Achse
Dim Y_Pos As Integer = (srcArgs.Bitmap.Height / 2) - (F.Height / 2)
'Schreibe des String auf das Bild
g.DrawString(MyStr, F, Brushes.Black, X_Pos, Y_Pos)
End Using
Catch ex As Exception
'Ignoriere die Fehler!
End Try
|
so, das wars, der Code ist Fertig.
Hier nocheinmal der ganze Code:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
Imports PaintDotNet
Imports PaintDotNet.Effects
Imports System.Drawing
Public Class Hallo_Welt
Inherits Effect
Dim MyStr As String = "Hallo Welt!"
Public Sub New()
MyBase.New("Transparancy Cutter", Image.FromFile("C:\Dokumente und Einstellungen\Freakstar\Desktop\mediafiles\Icons\Coinbox.png"), "Meine Plugins")
End Sub
Public Overrides Sub Render(ByVal parameters As PaintDotNet.Effects.EffectConfigToken, ByVal dstArgs As PaintDotNet.RenderArgs, ByVal srcArgs As PaintDotNet.RenderArgs, ByVal rois() As System.Drawing.Rectangle, ByVal startIndex As Integer, ByVal length As Integer)
Try
Dim F As New Font("Arial", 12) ' Die Schriftart + Größe
Using g As Graphics = dstArgs.Graphics
'Berechne die Mitte der X Achse
Dim X_Pos As Integer = (srcArgs.Bitmap.Width / 2) - (g.MeasureString(MyStr, F).Width / 2)
'Berechne die Mitte der Y Achse
Dim Y_Pos As Integer = (srcArgs.Bitmap.Height / 2) - (F.Height / 2)
'Schreibe des String auf das Bild
g.DrawString(MyStr, F, Brushes.Black, X_Pos, Y_Pos)
End Using
Catch ex As Exception
'Ignoriere die Fehler!
End Try
End Sub
End Class
|
Jetzt wollen wir das Ganze auch mal Testen

Klickt im Menü auf
Erstellen -> {PROJEKTNAME} erstellen
Das Plugin findet ihr dann hier:
|
Quellcode
|
1
|
C:\Dokumente und Einstellungen\{BENUTZERNAME}\Eigene Dateien\Visual Studio 2008\Projects\M{PROJEKTNAME}\{PROJEKTNAME}\bin\Release
|
Dort sind mehrere DLL's vorhanden, eure ist die, die {PROJEKTNAME}.dll heißt.
Kopiert diese Datei jetzt hierhin:
|
Quellcode
|
1
|
PDN Ordner/effects
|
jetzt startet ihr PDN und klckt im Menü auf:
|
Quellcode
|
1
|
Effekte/{UNTERORDNER}/{PLUGINNAME}
|
und schon wird der angegebene String auf das Bild gerendert
Ich hoffe ich hab alles verständlich erklärt und konnte euch Helfen
Dieses Tutorial ist Copyright©, 2010 by DEVTRONiC und darf ohne erlaubnis NICHT kopiert werden, verlinken ist erlaubt!
KRITIK ERWÜNSCHT!
lg.