//
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
//
namespace ImageSharp
{
using System;
using Processing.Processors;
///
/// Extension methods for the type.
///
public static partial class ImageExtensions
{
///
/// Skews an image by the given angles in degrees, expanding the image to fit the skewed result.
///
/// The pixel format.
/// The image to skew.
/// The angle in degrees to perform the rotation along the x-axis.
/// The angle in degrees to perform the rotation along the y-axis.
/// The
public static Image Skew(this Image source, float degreesX, float degreesY)
where TColor : struct, IPackedPixel, IEquatable
{
return Skew(source, degreesX, degreesY, true);
}
///
/// Skews an image by the given angles in degrees.
///
/// The pixel format.
/// The image to skew.
/// The angle in degrees to perform the rotation along the x-axis.
/// The angle in degrees to perform the rotation along the y-axis.
/// Whether to expand the image to fit the skewed result.
/// The
public static Image Skew(this Image source, float degreesX, float degreesY, bool expand)
where TColor : struct, IPackedPixel, IEquatable
{
SkewProcessor processor = new SkewProcessor { AngleX = degreesX, AngleY = degreesY, Expand = expand };
source.ApplyProcessor(processor, source.Bounds);
return source;
}
}
}