@ -13,6 +13,7 @@ namespace ImageProcessor.Imaging.Filters.EdgeDetection
using System ;
using System ;
using System.Drawing ;
using System.Drawing ;
using System.Drawing.Imaging ;
using System.Drawing.Imaging ;
using System.Threading.Tasks ;
using ImageProcessor.Common.Extensions ;
using ImageProcessor.Common.Extensions ;
using ImageProcessor.Imaging.Filters.Photo ;
using ImageProcessor.Imaging.Filters.Photo ;
@ -92,7 +93,10 @@ namespace ImageProcessor.Imaging.Filters.EdgeDetection
using ( FastBitmap destinationBitmap = new FastBitmap ( destination ) )
using ( FastBitmap destinationBitmap = new FastBitmap ( destination ) )
{
{
// Loop through the pixels.
// Loop through the pixels.
for ( int y = 0 ; y < height ; y + + )
Parallel . For (
0 ,
height ,
y = >
{
{
for ( int x = 0 ; x < width ; x + + )
for ( int x = 0 ; x < width ; x + + )
{
{
@ -131,6 +135,7 @@ namespace ImageProcessor.Imaging.Filters.EdgeDetection
if ( offsetX < width )
if ( offsetX < width )
{
{
// ReSharper disable once AccessToDisposedClosure
Color currentColor = sourceBitmap . GetPixel ( offsetX , offsetY ) ;
Color currentColor = sourceBitmap . GetPixel ( offsetX , offsetY ) ;
double r = currentColor . R ;
double r = currentColor . R ;
double g = currentColor . G ;
double g = currentColor . G ;
@ -151,9 +156,10 @@ namespace ImageProcessor.Imaging.Filters.EdgeDetection
byte blue = bX . ToByte ( ) ;
byte blue = bX . ToByte ( ) ;
Color newColor = Color . FromArgb ( red , green , blue ) ;
Color newColor = Color . FromArgb ( red , green , blue ) ;
// ReSharper disable once AccessToDisposedClosure
destinationBitmap . SetPixel ( x , y , newColor ) ;
destinationBitmap . SetPixel ( x , y , newColor ) ;
}
}
}
} ) ;
}
}
}
}
}
}