Du bist nicht angemeldet.

Freakstar

Deprimierter optimist xD

  • »Freakstar« ist männlich
  • »Freakstar« ist der Autor dieses Themas

Beiträge: 590

Dabei seit: 7. September 2008

Frühere Benutzernamen: Freakstar

Hilfreich-Bewertungen: 7

  • Private Nachricht senden

1

Samstag, 28. März 2009, 09:48

[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
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 :D

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 :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.

Status: Chilln

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Marcus Gräfe« (28. März 2009, 11:58)


Ähnliche Themen

Social Bookmarks