dev*_*sri 11 iphone objective-c uiimageview uiimage ios
我试图从照片库或相机中选择一张图像.
委托方法:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
Run Code Online (Sandbox Code Playgroud)
给我一个UIImage
对象.我需要bytes
为我的应用程序找到图像的大小.
有什么办法可以获得图像的文件类型以及字节大小吗?
任何形式的帮助将受到高度赞赏.
提前致谢
Asi*_* AP 35
请尝试以下代码:
NSData *imageData = [[NSData alloc] initWithData:UIImageJPEGRepresentation((image), 1.0)];
int imageSize = imageData.length;
NSLog(@"SIZE OF IMAGE: %i ", imageSize);
Run Code Online (Sandbox Code Playgroud)
Rok*_*arc 17
我知道这是一个老问题但是创建一个NSData
对象只是为了获得图像的字节大小可能是一个非常昂贵的操作.图像可以有超过20Mb并创建相同大小的对象只是为了获得第一个的大小...
我倾向于使用这个类别:
的UIImage + CalculatedSize.h
#import <UIKit/UIKit.h>
@interface UIImage (CalculatedSize)
-(NSUInteger)calculatedSize;
@end
Run Code Online (Sandbox Code Playgroud)
的UIImage + CalculatedSize.m
#import "UIImage+CalculatedSize.h"
@implementation UIImage (CalculatedSize)
-(NSUInteger)calculatedSize
{
return CGImageGetHeight(self.CGImage) * CGImageGetBytesPerRow(self.CGImage);
}
@end
Run Code Online (Sandbox Code Playgroud)
您只需导入UIImage+CalculatedSize.h
并使用它,如下所示:
NSLog (@"myImage size is: %u",myImage.calculatedSize);
Run Code Online (Sandbox Code Playgroud)
或者,如果您想避免使用类别:
NSUInteger imgSize = CGImageGetHeight(anImage.CGImage) * CGImageGetBytesPerRow(anImage.CGImage);
Run Code Online (Sandbox Code Playgroud)
编辑:
此计算当然与JPEG/PNG压缩无关.它涉及底层CGimage:
位图(或采样)图像是矩形像素阵列,每个像素表示源图像中的单个样本或数据点.
在某种程度上,以这种方式检索的大小可以为您提供最坏情况的方案信息,而无需实际创建昂贵的附加对象.
归档时间: |
|
查看次数: |
18688 次 |
最近记录: |