// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // namespace ImageSharp.Tests.TestUtilities { using System; /// /// Utility class to create specialized subclasses generic classes (eg. ) /// public class GenericFactory where TColor : struct, IPackedPixel, IEquatable { public virtual Image CreateImage(int width, int height) { return new Image(width, height); } public virtual Image CreateImage(byte[] bytes) { return new Image(bytes); } public virtual PixelArea CreatePixelArea(int width, int height, ComponentOrder componentOrder) { return new PixelArea(width, height, componentOrder); } } public class DefaultImageClassSpecificFactory : GenericFactory { public override Image CreateImage(byte[] bytes) => new Image(bytes); public override Image CreateImage(int width, int height) => new Image(width, height); public override PixelArea CreatePixelArea(int width, int height, ComponentOrder componentOrder) => new PixelArea(width, height, componentOrder); } }