// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // namespace ImageSharp.Benchmarks.Image { using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using ImageSharp.PixelFormats; public class CopyPixels : BenchmarkBase { [Benchmark(Description = "Copy by Pixel")] public Rgba32 CopyByPixel() { using (Image source = new Image(1024, 768)) using (Image target = new Image(1024, 768)) { using (PixelAccessor sourcePixels = source.Lock()) using (PixelAccessor targetPixels = target.Lock()) { Parallel.For( 0, source.Height, Configuration.Default.ParallelOptions, y => { for (int x = 0; x < source.Width; x++) { targetPixels[x, y] = sourcePixels[x, y]; } }); return targetPixels[0, 0]; } } } } }