本文整理汇总了C#中System.Point.SetX方法的典型用法代码示例。如果您正苦于以下问题:C# Point.SetX方法的具体用法?C# Point.SetX怎么用?C# Point.SetX使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Point
的用法示例。
在下文中一共展示了Point.SetX方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FocalCrop
/// <summary>
/// Crops the image around a focal point.
/// Will try and center on the focal point if possible, but if the crop falls outside the area of the image it will adjust.
/// Keeps the aspect of the crop.
/// </summary>
/// <param name="image">The image to run the macro on</param>
/// <param name="x">The horizontal position of the focal point</param>
/// <param name="y">The y position of the focal point</param>
/// <param name="width">The width of the area to crop</param>
/// <param name="height">The height of the area to crop</param>
/// <param name="sourceWidth">The original image width</param>
/// <param name="sourceHeight">The original image height</param>
/// <returns></returns>
public static ImgixImage FocalCrop(this ImgixImage image, int x, int y, int width, int height, int sourceWidth,
int sourceHeight)
{
var cropRectangle = new Rectangle(width, height);
var imageRectangle = new Rectangle(sourceWidth, sourceHeight);
if (!imageRectangle.CanHold(cropRectangle))
{
cropRectangle = cropRectangle.EnsureFit(imageRectangle);
}
var cropTopLeftCorner = new Point(x-cropRectangle.Width/2, y-cropRectangle.Height/2);
var cropBottomRightCorner = new Point(cropTopLeftCorner.X + cropRectangle.Width, cropTopLeftCorner.Y + cropRectangle.Height);
//Adjust x position
if (cropTopLeftCorner.X < 0)
{
cropTopLeftCorner = cropTopLeftCorner.SetX(0);
}
else if (cropBottomRightCorner.X > sourceWidth)
{
cropTopLeftCorner = cropTopLeftCorner.SetX(sourceWidth - cropRectangle.Width);
}
//Adjust y position
if (cropTopLeftCorner.Y < 0)
{
cropTopLeftCorner = cropTopLeftCorner.SetY(0);
}
else if (cropBottomRightCorner.Y > sourceHeight)
{
cropTopLeftCorner = cropTopLeftCorner.SetY(sourceHeight - cropRectangle.Height);
}
return image.Rect(cropTopLeftCorner.X, cropTopLeftCorner.Y, cropRectangle.Width, cropRectangle.Height);
}