mirror of https://github.com/SixLabors/ImageSharp
Browse Source
Former-commit-id: a60cfc5679620a3b838aa5286fe6d94b1a1f7973 Former-commit-id: 9b66ac00a9a154a1315b441d10f3c9654a495492 Former-commit-id: bb68aeba5ba81ffad3fa93000875ad2a4eb5d30aaf/merge-core
2 changed files with 272 additions and 0 deletions
@ -0,0 +1,131 @@ |
|||||
|
// <copyright file="Decode.cs" company="James Jackson-South">
|
||||
|
// Copyright (c) James Jackson-South and contributors.
|
||||
|
// Licensed under the Apache License, Version 2.0.
|
||||
|
// </copyright>
|
||||
|
|
||||
|
namespace ImageProcessorCore.Benchmarks.Image |
||||
|
{ |
||||
|
using System.Drawing; |
||||
|
using System.IO; |
||||
|
|
||||
|
using BenchmarkDotNet.Attributes; |
||||
|
using CoreSize = ImageProcessorCore.Size; |
||||
|
using CoreImage = ImageProcessorCore.Image; |
||||
|
|
||||
|
public class Decode |
||||
|
{ |
||||
|
private byte[] bmpBytes; |
||||
|
private byte[] gifBytes; |
||||
|
private byte[] jpegBytes; |
||||
|
private byte[] pngBytes; |
||||
|
|
||||
|
[Setup] |
||||
|
public void ReadImages() |
||||
|
{ |
||||
|
if (bmpBytes == null) |
||||
|
{ |
||||
|
bmpBytes = File.ReadAllBytes("../ImageProcessorCore.Tests/TestImages/Formats/Bmp/Car.bmp"); |
||||
|
} |
||||
|
if (gifBytes == null) |
||||
|
{ |
||||
|
gifBytes = File.ReadAllBytes("../ImageProcessorCore.Tests/TestImages/Formats/Gif/giphy.gif"); |
||||
|
} |
||||
|
if (jpegBytes == null) |
||||
|
{ |
||||
|
jpegBytes = File.ReadAllBytes("../ImageProcessorCore.Tests/TestImages/Formats/Jpg/Calliphora.jpg"); |
||||
|
} |
||||
|
if (pngBytes == null) |
||||
|
{ |
||||
|
pngBytes = File.ReadAllBytes("../ImageProcessorCore.Tests/TestImages/Formats/Png/splash.png"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "System.Drawing Bmp")] |
||||
|
public Size BmpSystemDrawing() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream(bmpBytes)) |
||||
|
{ |
||||
|
using (Image image = Image.FromStream(memoryStream)) |
||||
|
{ |
||||
|
return image.Size; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "ImageProcessorCore Bmp")] |
||||
|
public CoreSize BmpCore() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream(bmpBytes)) |
||||
|
{ |
||||
|
CoreImage image = new CoreImage(memoryStream); |
||||
|
return new CoreSize(image.Width, image.Height); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "System.Drawing Gif")] |
||||
|
public Size GifSystemDrawing() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream(gifBytes)) |
||||
|
{ |
||||
|
using (Image image = Image.FromStream(memoryStream)) |
||||
|
{ |
||||
|
return image.Size; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "ImageProcessorCore Gif")] |
||||
|
public CoreSize GifCore() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream(gifBytes)) |
||||
|
{ |
||||
|
CoreImage image = new CoreImage(memoryStream); |
||||
|
return new CoreSize(image.Width, image.Height); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "System.Drawing Jpeg")] |
||||
|
public Size JpegSystemDrawing() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream(jpegBytes)) |
||||
|
{ |
||||
|
using (Image image = Image.FromStream(memoryStream)) |
||||
|
{ |
||||
|
return image.Size; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "ImageProcessorCore Jpeg")] |
||||
|
public CoreSize JpegCore() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream(jpegBytes)) |
||||
|
{ |
||||
|
CoreImage image = new CoreImage(memoryStream); |
||||
|
return new CoreSize(image.Width, image.Height); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "System.Drawing Png")] |
||||
|
public Size PngSystemDrawing() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream(pngBytes)) |
||||
|
{ |
||||
|
using (Image image = Image.FromStream(memoryStream)) |
||||
|
{ |
||||
|
return image.Size; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "ImageProcessorCore Png")] |
||||
|
public CoreSize PngCore() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream(pngBytes)) |
||||
|
{ |
||||
|
CoreImage image = new CoreImage(memoryStream); |
||||
|
return new CoreSize(image.Width, image.Height); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,141 @@ |
|||||
|
// <copyright file="Encode.cs" company="James Jackson-South">
|
||||
|
// Copyright (c) James Jackson-South and contributors.
|
||||
|
// Licensed under the Apache License, Version 2.0.
|
||||
|
// </copyright>
|
||||
|
|
||||
|
namespace ImageProcessorCore.Benchmarks.Image |
||||
|
{ |
||||
|
using System.Drawing; |
||||
|
using System.Drawing.Imaging; |
||||
|
using System.IO; |
||||
|
|
||||
|
using BenchmarkDotNet.Attributes; |
||||
|
using CoreImage = ImageProcessorCore.Image; |
||||
|
|
||||
|
public class Encode |
||||
|
{ |
||||
|
// System.Drawing needs this.
|
||||
|
private Stream bmpStream; |
||||
|
private Stream gifStream; |
||||
|
private Stream jpegStream; |
||||
|
private Stream pngStream; |
||||
|
|
||||
|
private Image bmpDrawing; |
||||
|
private Image gifDrawing; |
||||
|
private Image jpegDrawing; |
||||
|
private Image pngDrawing; |
||||
|
|
||||
|
private CoreImage bmpCore; |
||||
|
private CoreImage gifCore; |
||||
|
private CoreImage jpegCore; |
||||
|
private CoreImage pngCore; |
||||
|
|
||||
|
[Setup] |
||||
|
public void ReadImages() |
||||
|
{ |
||||
|
if (bmpStream == null) |
||||
|
{ |
||||
|
bmpStream = File.OpenRead("../ImageProcessorCore.Tests/TestImages/Formats/Bmp/Car.bmp"); |
||||
|
bmpCore = new CoreImage(bmpStream); |
||||
|
bmpStream.Position = 0; |
||||
|
bmpDrawing = Image.FromStream(bmpStream); |
||||
|
} |
||||
|
|
||||
|
if (gifStream == null) |
||||
|
{ |
||||
|
gifStream = File.OpenRead("../ImageProcessorCore.Tests/TestImages/Formats/Gif/giphy.gif"); |
||||
|
gifCore = new CoreImage(gifStream); |
||||
|
gifStream.Position = 0; |
||||
|
gifDrawing = Image.FromStream(gifStream); |
||||
|
} |
||||
|
|
||||
|
if (jpegStream == null) |
||||
|
{ |
||||
|
jpegStream = File.OpenRead("../ImageProcessorCore.Tests/TestImages/Formats/Jpg/Calliphora.jpg"); |
||||
|
jpegCore = new CoreImage(jpegStream); |
||||
|
jpegStream.Position = 0; |
||||
|
jpegDrawing = Image.FromStream(jpegStream); |
||||
|
} |
||||
|
|
||||
|
if (pngStream == null) |
||||
|
{ |
||||
|
pngStream = File.OpenRead("../ImageProcessorCore.Tests/TestImages/Formats/Png/splash.png"); |
||||
|
pngCore = new CoreImage(pngStream); |
||||
|
pngStream.Position = 0; |
||||
|
pngDrawing = Image.FromStream(pngStream); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "System.Drawing Bmp")] |
||||
|
public void BmpSystemDrawing() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream()) |
||||
|
{ |
||||
|
bmpDrawing.Save(memoryStream, ImageFormat.Bmp); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "ImageProcessorCore Bmp")] |
||||
|
public void BmpCore() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream()) |
||||
|
{ |
||||
|
bmpCore.SaveAsBmp(memoryStream); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "System.Drawing Gif")] |
||||
|
public void GifSystemDrawing() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream()) |
||||
|
{ |
||||
|
bmpDrawing.Save(memoryStream, ImageFormat.Gif); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "ImageProcessorCore Gif")] |
||||
|
public void GifCore() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream()) |
||||
|
{ |
||||
|
bmpCore.SaveAsGif(memoryStream); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "System.Drawing Jpeg")] |
||||
|
public void JpegSystemDrawing() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream()) |
||||
|
{ |
||||
|
bmpDrawing.Save(memoryStream, ImageFormat.Jpeg); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "ImageProcessorCore Jpeg")] |
||||
|
public void JpegCore() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream()) |
||||
|
{ |
||||
|
bmpCore.SaveAsJpeg(memoryStream); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "System.Drawing Png")] |
||||
|
public void PngSystemDrawing() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream()) |
||||
|
{ |
||||
|
bmpDrawing.Save(memoryStream, ImageFormat.Png); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
[Benchmark(Description = "ImageProcessorCore Png")] |
||||
|
public void PngCore() |
||||
|
{ |
||||
|
using (MemoryStream memoryStream = new MemoryStream()) |
||||
|
{ |
||||
|
bmpCore.SaveAsPng(memoryStream); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue