//
// 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);
}
}