【问题标题】:Resize UIImage to 100% and crop将 UIImage 大小调整为 100% 并裁剪
【发布时间】:2017-02-06 16:16:48
【问题描述】:

我有一个景观UIImage,我想将其裁剪为 900x900 大小。

我不希望它被拉伸 - 我希望它缩放到 100% - 图像将被缩放以适合 900x900,并且超出范围的图像部分将被裁剪。

我试过这段代码:

UIGraphicsBeginImageContextWithOptions(newSize, true, UIScreen.main.scale);
image.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))

let newImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();
return newImage!

但它所做的只是将图像拉伸到 900x900 大小,这不是我想要的。

知道我可以在这里做什么吗?

谢谢

【问题讨论】:

    标签: ios iphone swift cocoa-touch uiimage


    【解决方案1】:

    如果图像尺寸大于 900,您可以从图像中心裁剪到 900 像素。

    代码如下:

    func centerCropImage(image1:UIImage) -> UIImage
    {
    
        let modifiedSize:CGFloat = 900.0;
        // Center the crop area
    
        let clippedRect = CGRect(x: ((image.size.width - modifiedSize)/2), y: ((image.size.height - modifiedSize)/2), width: modifiedSize, height: modifiedSize);
    
    
        // Crop logic
        let imageRef:CGImage = image.cgImage!.cropping(to: clippedRect)!;
    
        //(image as! CGImage).cropping(to: clippedRect)!;
        let croppedImage = UIImage(cgImage: imageRef);
    
        return croppedImage;
    }
    

    希望对你有帮助

    编码愉快...

    【讨论】:

    • 如果没有呢?如何找到最接近 900x900(正方形)的尺寸进行裁剪!
    • 对不起,我没有明白你的意思。您的意思是仅当图像尺寸(宽度和高度)大于 900 时才裁剪到 900??
    • 没有。例如,如果图像是 320x556,那么裁剪成正方形的最大分辨率是多少?
    • 绝对 320 将是​​最大的分辨率。大于 320 将拉伸图像宽度。所以在这种情况下,只需检查宽度和高度,如果两者都大于 900,则使用 modifiedSize 作为 900,否则找到图像尺寸的宽度和高度的最小值并将其分配给 modifiedSize。代码:min(image.size.width, image.size.height)
    • 乐于助人。
    【解决方案2】:

    如果我正确阅读了您的问题,您可以通过定制 UIImageView 的 contentMode 属性(您将图像附加到该属性)来实现您想要的。

    在此处查看开发人员参考:https://developer.apple.com/reference/uikit/uiimageview

    但是,要回答您的问题,要将图像放在 UIImageView 的中心而不拉伸它,请使用 contentMode.center ;缩放它以适应视图但保持纵横比使用 .aspectFit ;并使用 .scaleToFill 拉伸以适合图像视图。链接中解释了其他选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 2012-01-03
      • 2013-10-22
      • 1970-01-01
      • 2017-05-09
      相关资源
      最近更新 更多