工作地面
我在模拟器中有一个大小为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
委托方法中检查了两次,它返回了更大尺寸的图像。
有谁有主意,为什么选择更大的形象。有什么方法可以获取原始尺寸的图像吗?
您可以调整大小以在特定框架中查看图像。使用下面的代码
- (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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句