gpt4 book ai didi

ios - UIImagePicker 图像大小大于原始大小

转载 作者:行者123 更新时间:2023-12-01 16:16:08 27 4
gpt4 key购买 nike

工作场所

我在模拟器中有一个大小为 53kb 的图像(.JPG 格式)。

现在我使用 UIImagePickerController 选择这张图片并将其保存到本地。

选择图片并保存到本地的代码如下:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[[UIApplication sharedApplication] setStatusBarHidden:YES];

NSString *mediaType = info[UIImagePickerControllerMediaType];

if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
// Media is an image

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
if (image) {
NSData *jpegData = UIImageJPEGRepresentation(image, 1);

// Store image.
BOOL isImageSave = [jpegData writeToFile:filePath atomically:NO];

if (isImageSave) {
DLog(@"Image saved");
} else {
DLog(@"Error");
}
}
}
[self.view dismissViewControllerAnimated:YES completion:nil];

问题:

此处原始图像为 53kb,但当我选择此图像时,图像大小会增加,存储图像的大小为 142kb。在这里我使用压缩来减小尺寸。但我在 UIImagePickerController 委托(delegate)方法中检查了两次,它返回更大尺寸的图像。

有没有人知道为什么选择更大的图像。有没有办法在尺寸方面获得原始尺寸的图像?

最佳答案

您可以在特定帧中调整 ImageView 的大小。使用下面的代码

- (UIImage*)imageWithImage:(UIImage*)image 
scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return newImage;
}

然后将此方法调用为:

UIImage *myIcon = [self imageWithImage:myUIImageInstance scaledToSize:CGSizeMake(20, 20)];

就图像存储而言,iPhone 最快的图像格式是 PNG,因为它针对该格式进行了优化。但是,如果您想将这些图像存储为 JPEG,您可以获取 UIImage 并执行以下操作:

NSData *dataForJPEGFile = UIImageJPEGRepresentation(theImage, 0.6);

关于ios - UIImagePicker 图像大小大于原始大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25447171/

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