Announcement

Collapse
No announcement yet.

Paint.NET Plugin Tut

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Paint.NET Plugin Tut

    Hi,
    ich bin zwar erst seit gestern hier angemeldet, programmiere aber schon länger mit VB 2008

    In diesem Tutorial erkläre ich euch wie man Paint.NET Plugins mit VB 2008 programmieren kann.
    In diesem ersten Tut erkläre ich euch wie man "Hallo Welt!" in die mitte von einem Bild zeichnen kann, in meinem zweiten tut(was ich gerade am schreiben bin) zeige ich euch wie man EinstellungsBasierte Plugins schreibt!

    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}):
    [highlight=vbnet]
    Imports PaintDotNet
    Imports PaintDotNet.Effects
    Imports System.Drawing[/highlight]

    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}:
    [highlight=vbnet]Inherits Effect[/highlight]

    Jetzt müssen wir das Plugin "erstellen" damit wir es auch später verwenden können,
    schreibt dazu folgenden Code unter Inherits Effect:
    [highlight=vbnet]
    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
    [/highlight]
    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:
    [highlight=vbnet]
    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[/highlight]

    In diese Klasse Schreiben wir jetzt folgenden Code:
    [highlight=vbnet]
    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
    [/highlight]

    so, das wars, der Code ist Fertig.
    Hier nocheinmal der ganze Code:
    [highlight=vbnet]
    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\C oinbox.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[/highlight]

    Jetzt wollen wir das Ganze auch mal Testen
    Klickt im Menü auf Erstellen -> {PROJEKTNAME} erstellen
    Das Plugin findet ihr dann hier:
    Code:
    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:
    Code:
    PDN Ordner/effects
    jetzt startet ihr PDN und klckt im Menü auf:
    Code:
    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.
Working...
X