[英]Resize UIImage to 100% and crop
我有一个风景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尺寸,这不是我想要的。
知道我该怎么办吗?
谢谢
如果我正确地阅读了您的问题,则可以通过定制UIImageView的contentMode属性(将图像附加到该属性)来实现所需的功能。
在这里查看开发人员参考: https : //developer.apple.com/reference/uikit/uiimageview
但是,要回答您的问题,请将图像放置在UIImageView的中心而不拉伸它,请使用contentMode.center; 缩放它以适合视图,但使用.aspectFit保持长宽比; 并拉伸以适合图像视图,请使用.scaleToFill。 链接中还介绍了其他选项。
如果图像尺寸大于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;
}
希望能帮助到你
快乐的编码...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.