Hallo liebe Community,
ich spiele mich derzeit etwas mit der Colormatrix-Klasse in .NET herum,
und frage mich deswegen ob man diesen Vorgang etwas beschleunigen kann.
Meine derzeitige Vorgehensweise ist:
Diese Methode dauert doch eine halbe Sekunde bis Sekunde (+).
Danke im Vorraus.
ich spiele mich derzeit etwas mit der Colormatrix-Klasse in .NET herum,
und frage mich deswegen ob man diesen Vorgang etwas beschleunigen kann.
Meine derzeitige Vorgehensweise ist:
VB.NET-Quellcode
- Public Shared Function CompleteColorMatrix(ByVal b As Bitmap, ByVal cm As System.Drawing.Imaging.ColorMatrix) As Bitmap
- Using ia As New System.Drawing.Imaging.ImageAttributes
- ia.SetColorMatrix(cm)
- Dim rc As New Rectangle(0, 0, b.Width, b.Height)
- Using bClone As Bitmap = DirectCast(b.Clone, Bitmap)
- Using g As Graphics = Graphics.FromImage(b)
- g.Clear(Color.Transparent)
- g.DrawImage(bClone, rc, 0, 0, bClone.Width, bClone.Height, GraphicsUnit.Pixel, ia)
- g.Dispose()
- End Using
- End Using
- End Using
- Return b
- End Function
- ''' <summary>
- ''' Uses the bluescale-filter at a given bitmap.
- ''' </summary>
- ''' <param name="b">The given bitmap.</param>
- ''' <returns>Bitmap</returns>
- ''' <remarks></remarks>
- Public Shared Function BlueScale(ByVal b As Bitmap) As Bitmap
- Dim cm As New System.Drawing.Imaging.ColorMatrix(New Single()() _
- {New Single() {0, 0, 1, 0, 0}, _
- New Single() {0, 1, 0, 0, 0}, _
- New Single() {1, 0, 0, 0, 0}, _
- New Single() {0, 0, 0, 1, 0}, _
- New Single() {0, 0, 0, 0, 1}})
- Return CompleteColorMatrix(b, cm)
- End Function
Diese Methode dauert doch eine halbe Sekunde bis Sekunde (+).
Danke im Vorraus.