Du bist nicht angemeldet.

Krissel095

Lotus.NET

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

Beiträge: 58

Dabei seit: 3. Juni 2008

Wohnort: Berlin

Hilfreich-Bewertungen: 21

  • Private Nachricht senden

1

Samstag, 8. Mai 2010, 22:14

GraphX (Graphics Library)

Beschreibung:
Eine (noch) kleine Grafikbibliothek, die ständig um Funktioinen erweitert wird. Ursprünglich sollte es eigentlich nur eine Blur-Bibliothek werden, da dachte ich mir, dass diese allerdings zu wenig Funktionen enthält um es Wert zu sein, veröffentlicht zu werden.

Funktionen:
 Hier klicken für weitere Informationen

Visual Basic 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Public Class GraphX
          Public Function GrayScale(ByVal img As Image) As Image
          Public Function SetImageAlpha(ByVal img As Image, ByVal Alpha As Integer)
          Public Function Invert(ByVal img As Image) As Image
          Public Function RotateImage(ByVal img As Image, ByVal angle As Single) As Image
          Public Function ChangePixelFormat(ByVal img As Image, ByVal pixel_format As PixelFormat) As Image
End Class

Public Class BackBuffer
          'Properties
          Public ReadOnly Property Graphics() As Graphics
          Public ReadOnly Property Width() As Integer
          Public ReadOnly Property Height() As Integer

          'Subs
          Public Sub ChangePixelFormat(ByVal pixel_format As PixelFormat)
          Public Sub ExportImage(ByVal Path As String, ByVal Format As ImageFormat)
          Public Sub SetTexture(ByVal img As Image)

          'Functions
          Public Shared Function FromImage(ByVal img As Image) As BackBuffer
          Public Function GetTexture() As Image

          Sub New(ByVal Width As Integer, ByVal Height As Integer, Optional ByVal PixelFormat As PixelFormat)
End Class

Public Class Blurer
          'Events
          Public Event BlurProgressStarted(ByVal maximum_value As Integer)
          Public Event BlurProgressChanged(ByVal value As Integer)
          Public Event BlurProgressPreview(ByVal bmp As Bitmap)
          Public Event BlurProgressEnded(ByVal result_bmp As Bitmap)

          'Properties
          Public Property Image() As Bitmap
          Public Property BlurIntensity() As Integer
          Public Property BlurerMode() As BlurMode

          'Functions
          Public Function Blur() As Bitmap

          Sub New(ByVal Image As Bitmap, ByVal BlurIntensity As Integer, ByVal BMode As BlurMode)

          Public Enum BlurMode
            Vertical
            Horizontal
            Diagonal
            BackwardDiagonal
            Gaussian
            DoubleDiagonal
          End Enum
End Class

Public Class MandelBrotFractal
          'Properties
          Public Property Bounds() As Size
          Public Property Alpha() As Integer
          Public Property AntiAliasing() As Integer

          'Subs
          Public Sub EnableAntiAliasing()
          Public Sub DisableAntiAliasing()
          Public Sub SetColor(ByVal VectorType As VectorType, ByVal c As Color)

          Public Enum VectorType
            Outline
            Outline2
            Outline3
            Outline4
            Outline5
            Outline6
            Outline7
            Outline8
            MandelBrotOutline5
            MandelBrotOutline4
            MandelBrotOutline3
            MandelBrotOutline2
            MandelBrotOutline1

            ShadowInline
            ShadowOutline

            MandelBrot
          End Enum

          'Functions
          Public Function Render() As Image
End Class


Screenshot:
 Hier klicken für weitere Informationen

Blur Test:



MandelBrot Fractal Test:


Grayscale:


Invert:


Rotate 180°:


Mandelbrot Fraktal:



Verwendete Programmiersprache:
VB.NET
IDE: Visual Basic 2008

Systemanforderungen:
.NET Framework 2.0

Download:
graphx-1.0.0.0.zip (7KB)

Lizenz/Weitergabe:
Freeware, Decompilen ist nicht erlaubt, ebensowenig wie Mergen (eincompilieren)


Feedback bzw. neue Funktionsvorschläge erwünscht ;)

MfG

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Krissel095« (9. Mai 2010, 21:25)


Mangafreak1995

Anwendungsentwickler

  • »Mangafreak1995« ist männlich

Beiträge: 1 670

Dabei seit: 16. August 2009

Wohnort: /home/usr/

Hilfreich-Bewertungen: 175

  • Private Nachricht senden

2

Sonntag, 9. Mai 2010, 05:57

GreyScale, Rotieren und Invertieren ist nicht schwer aber das Blur ist gut gemacht :thumbsup:

Funktionen 1/5 wenn mehr dazu kommen die es noch nicht gibt würd ich sogar 4/5 sagen aber dass ist bis jetzt nur Wrapper bis aufs Blur
kriegst du ein Mandelbrotfraktal hin oder Wolken ? ... das wäre richtig geil ^^
aber für den Anfang schon mal gut

Set und GetTexture würd ich ja zusammen packen in eine Property

aber du kriegst n Pluspunkt weil du es fürs FW 2.0 gemacht hast ;)

Krissel095

Lotus.NET

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

Beiträge: 58

Dabei seit: 3. Juni 2008

Wohnort: Berlin

Hilfreich-Bewertungen: 21

  • Private Nachricht senden

3

Sonntag, 9. Mai 2010, 12:21

Danke für das Feedback, hab das Mandelbrot-Fraktal eingebaut ;) Ich werde heute noch eine Property einbauen, mit der man die Farben festlegen kann, da diese momentan zufallsgeneriert sind.

Leider habe ich zu den Wolken bis jetzt nichts gefunden, hab bei Wikipedia nach "Wolken" und "Fog" gesucht, bekomm leider nirgendwo erklärt, wie es funktioniert. Falls du einen nützlichen Link für mich hättest wäre ich sehr dankbar :)



MfG

Mangafreak1995

Anwendungsentwickler

  • »Mangafreak1995« ist männlich

Beiträge: 1 670

Dabei seit: 16. August 2009

Wohnort: /home/usr/

Hilfreich-Bewertungen: 175

  • Private Nachricht senden

4

Sonntag, 9. Mai 2010, 13:11

das sieht genial aus oO
daraus wird sicher noch was

Cooly96

Registrierter Benutzer

  • »Cooly96« ist männlich

Beiträge: 81

Dabei seit: 27. Juli 2009

Wohnort: C:/Recycler

  • Private Nachricht senden

5

Sonntag, 9. Mai 2010, 15:09

das blur kann ich SEHR gut gebrauchen

Krissel095

Lotus.NET

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

Beiträge: 58

Dabei seit: 3. Juni 2008

Wohnort: Berlin

Hilfreich-Bewertungen: 21

  • Private Nachricht senden

6

Sonntag, 9. Mai 2010, 16:13

Kleines Update, die Farben sind jetzt frei einstellbar:



Quellcode:
 Hier klicken für weitere Informationen

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        Dim mb As New GraphX.Drawing.MandelBrotFractal(New Size(PictureBox1.Width, PictureBox1.Height))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.MandelBrot, Color.Black)
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.ShadowInline, Color.Lime)
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.ShadowOutline, Color.FromArgb(255, 90, 90, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.MandelBrotOutline1, Color.FromArgb(255, 90, 90, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.MandelBrotOutline2, Color.FromArgb(255, 90, 90, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.MandelBrotOutline3, Color.FromArgb(255, 90, 90, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.MandelBrotOutline4, Color.FromArgb(255, 90, 90, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.MandelBrotOutline5, Color.FromArgb(255, 90, 90, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.Outline, Color.FromArgb(255, 90, 90, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.Outline2, Color.FromArgb(255, 80, 80, 80))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.Outline3, Color.FromArgb(255, 70, 70, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.Outline4, Color.FromArgb(255, 60, 60, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.Outline5, Color.FromArgb(255, 50, 50, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.Outline6, Color.FromArgb(255, 40, 40, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.Outline7, Color.FromArgb(255, 30, 30, 90))
        mb.SetColor(GraphX.Drawing.MandelBrotFractal.VectorType.Outline8, Color.FromArgb(255, 20, 20, 90))
        mb.AntiAliasing = 2
        PictureBox1.Image = mb.Render()



Ich werd das Update der DLL heute abend hier zum Download anbieten, weil ich bis dahin noch ein paar neue Funktionen einbauen wollte ;)

MfG

r3mote

Tekker Deluxe ♥

  • »r3mote« ist männlich

Beiträge: 150

Dabei seit: 14. Januar 2010

Wohnort: Lübeck

Frühere Benutzernamen: r3mote

Hilfreich-Bewertungen: 48

  • Private Nachricht senden

7

Sonntag, 9. Mai 2010, 17:18

Sehr gelungen ;)

DarkDiablo2

Registrierter Benutzer

  • »DarkDiablo2« ist männlich

Beiträge: 167

Dabei seit: 1. Februar 2009

Wohnort: Ulm

  • Private Nachricht senden

8

Sonntag, 9. Mai 2010, 20:48

Könntest du ein kleines Tutorail für Blur hinzufügen ? Ich checks nähmlich nich :D
Es is absolout möglich, dass jenseits der Wahrnehmungen unserer Sinne, ungeahnte Welten verborgen sind. -Albert Einstein

Krissel095

Lotus.NET

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

Beiträge: 58

Dabei seit: 3. Juni 2008

Wohnort: Berlin

Hilfreich-Bewertungen: 21

  • Private Nachricht senden

9

Sonntag, 9. Mai 2010, 21:22

Visual Basic Quellcode

1
2
Dim blurer As New GraphX.Drawing.Blurer(PictureBox1.Image, 15, GraphX.Drawing.Blurer.BlurMode.Gaussian)
PictureBox1.Image = blurer.Blur()


In dem Fall wird PictureBox1.Image geblurt ;) Das erste Attribut ist das Bild, das zweite die Intensität und das dritte die Methode, in dem Fall Gaußscher Weichzeichner.

MfG

PS: Mal eine Frage am Rande, wärt ihr an einer GameLib mit GDI interessiert? Wenn ja würde ich die in GraphX mit einbauen.

Mangafreak1995

Anwendungsentwickler

  • »Mangafreak1995« ist männlich

Beiträge: 1 670

Dabei seit: 16. August 2009

Wohnort: /home/usr/

Hilfreich-Bewertungen: 175

  • Private Nachricht senden

10

Sonntag, 9. Mai 2010, 22:02

warum so komisch ?
mach doch entweder ne Sub mit ByRef oder ne Function

jvbsl

Noob

  • »jvbsl« ist männlich

Beiträge: 7 206

Dabei seit: 7. April 2010

Hilfreich-Bewertungen: 397

  • Private Nachricht senden

11

Dienstag, 11. Mai 2010, 12:28

das Invert sieht finde ich oben noch bisschen komisch aus...
was für Pixel funktionen verwendest du?
Ich wollte auch mal ne total überflüssige Signatur:
---Leer---

Scream

Registrierter Benutzer

  • »Scream« ist männlich
  • »Scream« wurde gesperrt

Beiträge: 665

Dabei seit: 27. September 2009

Hilfreich-Bewertungen: 2

  • Private Nachricht senden

12

Donnerstag, 13. Mai 2010, 16:09

Ich hätte da einen Wunsch, ich weiß nicht ob das möglich ist aber ich sags trotzdem:
Das man ein Bild Halb transparent einfärben kann..

Lg Scream

jvbsl

Noob

  • »jvbsl« ist männlich

Beiträge: 7 206

Dabei seit: 7. April 2010

Hilfreich-Bewertungen: 397

  • Private Nachricht senden

13

Donnerstag, 13. Mai 2010, 20:51

jop natürlich möglich...xD für den Threadersteller(falls er es nicht wissen sollte): ColorMatrix
Ich wollte auch mal ne total überflüssige Signatur:
---Leer---

Scream

Registrierter Benutzer

  • »Scream« ist männlich
  • »Scream« wurde gesperrt

Beiträge: 665

Dabei seit: 27. September 2009

Hilfreich-Bewertungen: 2

  • Private Nachricht senden

14

Freitag, 14. Mai 2010, 10:17

Hier hab ich mal ein Beispiel:

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Function Blue(ByVal Pica As Image) As Image
    	Using Bmp As Bitmap = Pica.Clone()
        	Using IAttributes As New ImageAttributes
            	Using G As Graphics = Graphics.FromImage(Bmp)
                	IAttributes.SetColorMatrix(New ColorMatrix(New Single()() _
                	{New Single() {-0, 5.0F, 2, 0.0F, 2, 0.0F, 0.0F, 0.0F}, _
                	New Single() {-0, 5.0F, -1.0F, 0, 0.0F, 0, 0.0F}, _
                	New Single() {-0, 5.0F, 0.0F, -1.0F, 0.0F, 0.0F}, _
                	New Single() {-0, 5.0F, 0.0F, 0.0F, 1.0F, 0.0F}, _
                	New Single() {0, 5.0F, 1.0F, 1.0F, 0.0F, 0.0F}}))
                	G.DrawImage(Bmp, New Rectangle(0, 0, Bmp.Width, Bmp.Height), _
                	0, 0, Bmp.Width, Bmp.Height, GraphicsUnit.Pixel, IAttributes)
                	Return Bmp.Clone()
            	End Using
        	End Using
    	End Using
	End Function


P.s Danke an jvbsl, jetzt weiß ich noch mehr von vb ;P XD

Lg Scream

Drewstar

Registrierter Benutzer

  • »Drewstar« wurde gesperrt

Beiträge: 3

Dabei seit: 23. Juni 2010

  • Private Nachricht senden

15

Donnerstag, 24. Juni 2010, 13:51

Ich verstehe nur aber irgendwie nicht, wie ich das Inventieren einbinden kann.
Sonst klasse!

PS: Ein Vorschlag: Wie wär's mit Sepia?

Scream

Registrierter Benutzer

  • »Scream« ist männlich
  • »Scream« wurde gesperrt

Beiträge: 665

Dabei seit: 27. September 2009

Hilfreich-Bewertungen: 2

  • Private Nachricht senden

16

Donnerstag, 24. Juni 2010, 16:57

Für den Sepia Effekt kann man auch die ColorMatrix benutzen..
Ich weiß nicht ob der Negative Effekt schon dabei ist, aber für alle Fälle, hier ist er:

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Function Negative(Byval Pica As Image ) As Image
	Using Bmp As Bitmap = Pica.Clone()
    	Using IAttributes As New ImageAttributes
        	Using G As Graphics = Graphics.FromImage( Bmp )
            	IAttributes.SetColorMatrix( New ColorMatrix( New Single()() _
            	{New Single() {-2,5F, 0F, 0F, 0F, 0F}, _
            	New Single() {0F, -1F, 0F, 0, 0F}, _
            	New Single() {0F, 0F, -1F, 0F, 0F}, _
            	New Single() {0F, 0F, 0F, 1F, 0F}, _
            	New Single() {1F, 1F, 1F, 0F, 0F}}))
            	G.DrawImage( Bmp, New Rectangle( 0, 0, Bmp.Width, Bmp.Height ), _
            	0, 0, Bmp.Width, Bmp.Height, GraphicsUnit.Pixel, IAttributes )
            	Return Bmp.Clone()
        	End Using
    	End Using
	End Using
End Function

Drewstar

Registrierter Benutzer

  • »Drewstar« wurde gesperrt

Beiträge: 3

Dabei seit: 23. Juni 2010

  • Private Nachricht senden

17

Donnerstag, 24. Juni 2010, 19:48

Danke!

Meine eigetnlichge Frage: Wie muss ich Inventieren aufrufen, mit welchen Codeß

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Drewstar« (24. Juni 2010, 19:59)


Scream

Registrierter Benutzer

  • »Scream« ist männlich
  • »Scream« wurde gesperrt

Beiträge: 665

Dabei seit: 27. September 2009

Hilfreich-Bewertungen: 2

  • Private Nachricht senden

18

Freitag, 25. Juni 2010, 13:54

Zitat

Dim blurer As New GraphX.Drawing.xxx
Einfach in den Eigenschaften gucken..

Verwendete Tags

bitmap, GDI, Graphics, graphX, image

Social Bookmarks