gpt4 book ai didi

iphone - 在非视网膜设备上从 UIImagePickerController 获取 640x640 UIImage

转载 作者:行者123 更新时间:2023-11-29 13:07:19 26 4
gpt4 key购买 nike

我正在从 UIImagePickerController 获取经过编辑的图像。在 Retina iOS 设备上,返回的图像为 640x640,但在非 Retina iOS 设备上,返回的图像仅为 320x320

如何在非视网膜设备上从 Controller 获得 640x640 而无需手动升级?无论屏幕如何,我都需要尺寸保持不变,因为我正在上传它。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *image = info[UIImagePickerControllerEditedImage];

//image.size is 320x320 points on both retina and non-retina devices.
//How do I get 640x640 *pixels* for non-retina devices without upscaling?
}

最佳答案

我不确定,但可能没有调整图像大小,无法自动获取视网膜和非视网膜图像。

因此,您需要通过以下代码调整图像大小;

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[self dismissViewControllerAnimated:YES completion:nil];


UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage];
img = [self resizeImage:img];

// here you got, img = 640x640 or 320x320 base on you device;

}

resizeImage代码,

- (UIImage*)resizeImage:(UIImage*)image
{
CGSize newSize = nil;

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
&& [[UIScreen mainScreen] scale] == 2.0) {
// Retina
newSize = CGSizeMake(640, 640); // Here you need to set size as you want;
} else {
// Not Retina
newSize = CGSizeMake(320, 320); // Here you need to set size as you want;
}

UIGraphicsBeginImageContext( newSize );// a CGSize that has the size you want

[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return newImage;
}

关于iphone - 在非视网膜设备上从 UIImagePickerController 获取 640x640 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18270298/

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