当前位置: 首页>>代码示例>>C#>>正文


C# Rectangle.CanHold方法代码示例

本文整理汇总了C#中Rectangle.CanHold方法的典型用法代码示例。如果您正苦于以下问题:C# Rectangle.CanHold方法的具体用法?C# Rectangle.CanHold怎么用?C# Rectangle.CanHold使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Rectangle的用法示例。


在下文中一共展示了Rectangle.CanHold方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
 }
开发者ID:estei,项目名称:Imgix-Dotnet,代码行数:44,代码来源:FocalExtensions.cs

示例2: FocalResize

 /// <summary>
 ///     Resizes the image around a focal point
 ///     Crops the image to the aspect ratio with the focal point as close to center as possible.
 ///     Will not stretch the image to the width and height since this will just be a bigger picture with the same details.
 /// </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 resulting image</param>
 /// <param name="height">The height of the resulting image</param>
 /// <param name="sourceWidth">The original image width</param>
 /// <param name="sourceHeight">The original image height</param>
 /// <returns></returns>
 public static ImgixImage FocalResize(this ImgixImage image, int x, int y, int width,
     int height, int sourceWidth, int sourceHeight)
 {
     var resizeRectangle = new Rectangle(width, height);
     var imageRectangle = new Rectangle(sourceWidth, sourceHeight);
     var cropRectangle = resizeRectangle.Match(imageRectangle);
     var croppedImage = image.FocalCrop(x, y, cropRectangle.Width, cropRectangle.Height, sourceWidth,
         sourceHeight);
     return !imageRectangle.CanHold(resizeRectangle) ? croppedImage : croppedImage.Width(width).Height(height);
 }
开发者ID:estei,项目名称:Imgix-Dotnet,代码行数:23,代码来源:FocalExtensions.cs

示例3: Given_a_narrower_target_it_will_return_a_rectangle_that_fits_within_target

 public void Given_a_narrower_target_it_will_return_a_rectangle_that_fits_within_target()
 {
     var target = new Rectangle(2, 4);
     var subject = new Rectangle(3, 3);
     var result = subject.EnsureFit(target);
     Assert.True(target.CanHold(result));
 }
开发者ID:estei,项目名称:Imgix-Dotnet,代码行数:7,代码来源:RectangleTests.cs

示例4: Given_subject_is_wider_it_should_return_false

 public void Given_subject_is_wider_it_should_return_false()
 {
     var target = new Rectangle(2, 2);
     var subject = new Rectangle(3, 2);
     Assert.False(target.CanHold(subject));
 }
开发者ID:estei,项目名称:Imgix-Dotnet,代码行数:6,代码来源:RectangleTests.cs

示例5: Given_both_target_sides_are_the_same_as_subject_it_should_return_true

 public void Given_both_target_sides_are_the_same_as_subject_it_should_return_true()
 {
     var target = new Rectangle(2, 2);
     var subject = new Rectangle(2, 2);
     Assert.True(target.CanHold(subject));
 }
开发者ID:estei,项目名称:Imgix-Dotnet,代码行数:6,代码来源:RectangleTests.cs

示例6: Given_a_smaller_in_height_target_it_will_return_a_rectangle_that_fits_within_target

 public void Given_a_smaller_in_height_target_it_will_return_a_rectangle_that_fits_within_target()
 {
     var target = new Rectangle(4, 2);
     var subject = new Rectangle(3, 3);
     var result = subject.Match(target);
     Assert.True(target.CanHold(result));
 }
开发者ID:estei,项目名称:Imgix-Dotnet,代码行数:7,代码来源:RectangleTests.cs


注:本文中的Rectangle.CanHold方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。