[Tutorial] PDN Plugins erstellen

    • VB.NET

      [Tutorial] PDN Plugins erstellen

      Hi,
      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. Imports PaintDotNet
      2. Imports PaintDotNet.Effects
      3. 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. Dim MyStr As String = "Hallo Welt!" 'Das ist der Text der auf das Bild geschrieben wird!
      2. Public Sub New()
      3. MyBase.New("{PLUGINNAME}", Image.FromFile("{PFAD ZU DEM ICON}"), "{UNTERMENÜ}")
      4. 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 :D

      als nächstes wollen wir die Sub Class zum Rendern schreiben, fügt dafür folgenden Code ein:

      Quellcode

      1. 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)
      2. End Sub


      In diese Klasse Schreiben wir jetzt folgenden Code:

      Quellcode

      1. Try
      2. Dim F As New Font("Arial", 12) ' Die Schriftart + Größe
      3. Using g As Graphics = dstArgs.Graphics
      4. 'Berechne die Mitte der X Achse
      5. Dim X_Pos As Integer = (srcArgs.Bitmap.Width / 2) - (g.MeasureString(MyStr, F).Width / 2)
      6. 'Berechne die Mitte der Y Achse
      7. Dim Y_Pos As Integer = (srcArgs.Bitmap.Height / 2) - (F.Height / 2)
      8. 'Schreibe des String auf das Bild
      9. g.DrawString(MyStr, F, Brushes.Black, X_Pos, Y_Pos)
      10. End Using
      11. Catch ex As Exception
      12. 'Ignoriere die Fehler!
      13. End Try


      so, das wars, der Code ist Fertig.
      Hier nocheinmal der ganze Code:

      Quellcode

      1. Imports PaintDotNet
      2. Imports PaintDotNet.Effects
      3. Imports System.Drawing
      4. Public Class Hallo_Welt
      5. Inherits Effect
      6. Dim MyStr As String = "Hallo Welt!"
      7. Public Sub New()
      8. MyBase.New("Transparancy Cutter", Image.FromFile("C:\Dokumente und Einstellungen\Freakstar\Desktop\mediafiles\Icons\Coinbox.png"), "Meine Plugins")
      9. End Sub
      10. 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)
      11. Try
      12. Dim F As New Font("Arial", 12) ' Die Schriftart + Größe
      13. Using g As Graphics = dstArgs.Graphics
      14. 'Berechne die Mitte der X Achse
      15. Dim X_Pos As Integer = (srcArgs.Bitmap.Width / 2) - (g.MeasureString(MyStr, F).Width / 2)
      16. 'Berechne die Mitte der Y Achse
      17. Dim Y_Pos As Integer = (srcArgs.Bitmap.Height / 2) - (F.Height / 2)
      18. 'Schreibe des String auf das Bild
      19. g.DrawString(MyStr, F, Brushes.Black, X_Pos, Y_Pos)
      20. End Using
      21. Catch ex As Exception
      22. 'Ignoriere die Fehler!
      23. End Try
      24. End Sub
      25. End Class


      Jetzt wollen wir das Ganze auch mal Testen :D
      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©, 2009 by Freakstar und darf ohne erlaubnis NICHT kopiert werden, verlinken ist erlaubt!
      KRITIK ERWÜNSCHT!



      lg.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()