Xamarin Mac - 调整图像大小

时间:2017-06-23 07:11:05

标签: ios xamarin xamarin.ios nsimage xamarin.mac

我正试图在我的Mac-App中调整图像大小,就像我之前在iOS-App中所做的那样。问题是NSImage不包含UIImage所做的所有方法。这是我用于iOS的代码

$('selector').on('change', ...)

如何为Mac-App重写它?谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

我的Mac应用程序有一个工作功能,重写它以适合您的功能。 Haven没有对这个版本进行过测试,但是应该可以使用。

public static NSImage MaxResizeImage(this NSImage sourceImage, float maxWidth, float maxHeight)
{
    var sourceSize = sourceImage.Size;
    var maxResizeFactor = Math.Max(maxWidth / sourceSize.Width, maxHeight / sourceSize.Height);
    if (maxResizeFactor > 1) return sourceImage;
    float width = (float)(maxResizeFactor * sourceSize.Width);
    float height = (float)(maxResizeFactor * sourceSize.Height);
    var targetRect = new CoreGraphics.CGRect(0,0,width, height);
    var newImage = new NSImage (new CoreGraphics.CGSize (width, height));
    newImage.LockFocus ();
    sourceImage.DrawInRect(targetRect, CoreGraphics.CGRect.Empty, NSCompositingOperation.SourceOver, 1.0f);
    newImage.UnlockFocus ();

    return newImage;
}