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:
Dort sind mehrere DLL's vorhanden, eure ist die, die {PROJEKTNAME}.dll heißt.
Kopiert diese Datei jetzt hierhin:
jetzt startet ihr PDN und klckt im Menü auf:
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.
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
Kopiert diese Datei jetzt hierhin:
Code:
PDN Ordner/effects
Code:
Effekte/{UNTERORDNER}/{PLUGINNAME}
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.