Browse Source

Optimize Brightness

pull/221/head
James Jackson-South 9 years ago
parent
commit
4dbcdce62e
  1. 39
      src/ImageSharp/Processing/Processors/Effects/BrightnessProcessor.cs

39
src/ImageSharp/Processing/Processors/Effects/BrightnessProcessor.cs

@ -63,31 +63,26 @@ namespace ImageSharp.Processing.Processors
startY = 0; startY = 0;
} }
using (PixelAccessor<TPixel> sourcePixels = source.Lock()) Parallel.For(
{ minY,
Parallel.For( maxY,
minY, this.ParallelOptions,
maxY, y =>
this.ParallelOptions, {
y => Span<TPixel> row = source.GetRowSpan(y - startY);
{
int offsetY = y - startY;
for (int x = minX; x < maxX; x++)
{
int offsetX = x - startX;
// TODO: Check this with other formats. for (int x = minX; x < maxX; x++)
Vector4 vector = sourcePixels[offsetX, offsetY].ToVector4().Expand(); {
Vector3 transformed = new Vector3(vector.X, vector.Y, vector.Z) + new Vector3(brightness); ref TPixel pixel = ref row[x - startX];
vector = new Vector4(transformed, vector.W);
TPixel packed = default(TPixel); // TODO: Check this with other formats.
packed.PackFromVector4(vector.Compress()); Vector4 vector = pixel.ToVector4().Expand();
Vector3 transformed = new Vector3(vector.X, vector.Y, vector.Z) + new Vector3(brightness);
vector = new Vector4(transformed, vector.W);
sourcePixels[offsetX, offsetY] = packed; pixel.PackFromVector4(vector.Compress());
} }
}); });
}
} }
} }
} }
Loading…
Cancel
Save