gpt4 book ai didi

ios - 如何在 iOS 中裁剪到信箱

转载 作者:行者123 更新时间:2023-11-28 22:55:42 25 4
gpt4 key购买 nike

在 IOS 中,如何将矩形图像裁剪为方形信箱,使其保持原始纵横比,其余空间用黑色填充。例如。 transloadit 用来裁剪/调整图像大小的“pad”策略。

http://transloadit.com/docs/image-resize

最佳答案

对于任何偶然发现这个问题和更多类似问题但没有明确答案的人,我已经编写了一个简洁的小类别,它通过直接修改 UIImage 而不是仅仅修改来在模型级别完成此任务风景。只需使用此方法,无论哪边较长,返回的图像都会被信箱化为正方形。

- (UIImage *) letterboxedImageIfNecessary
{
CGFloat width = self.size.width;
CGFloat height = self.size.height;

// no letterboxing needed, already a square
if(width == height)
{
return self;
}

// find the larger side
CGFloat squareSize = MAX(width,height);

UIGraphicsBeginImageContext(CGSizeMake(squareSize, squareSize));

// draw black background
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 0.0, 0.0, 0.0, 1.0);
CGContextFillRect(context, CGRectMake(0, 0, squareSize, squareSize));

// draw image in the middle
[self drawInRect:CGRectMake((squareSize - width) / 2, (squareSize - height) / 2, width, height)];

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}

关于ios - 如何在 iOS 中裁剪到信箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10844896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com