iOS 将 jpg 压缩为不合适的大小
iOS compress jpg not in a right size
我尝试用 0.4 质量压缩一张 jpg。我使用 NSlog 打印数据大小,它显示 NSData 大小为 337613,但保存到相册后,文件增加到 677947。
我能用它做什么?
PS: 图像对象来自相机。
NSData *newData =UIImageJPEGRepresentation(image,0.3f);
UIImage *compressdImg30 = [UIImage imageWithData:newData];
NSLog(@"[after 0]newData.length=%u",[newData length]); // print 337613 in debug
UIImageWriteToSavedPhotosAlbum(compressdImg30,nil,nil,nil);
然后我插入 iPhone 并将文件复制到我的 Mac Mini,然后键入 "ls -ltr" 查看文件大小,然后显示 677947。
您可以使用ALAssetsLibrary的
-writeImageDataToSavedPhotosAlbum:metadata:completionBlock:
将图像数据保存到库的方法。
ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
[al writeImageDataToSavedPhotosAlbum:data metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"Completion block/Do check the error if any");
}];
试试看
我尝试用 0.4 质量压缩一张 jpg。我使用 NSlog 打印数据大小,它显示 NSData 大小为 337613,但保存到相册后,文件增加到 677947。
我能用它做什么? PS: 图像对象来自相机。
NSData *newData =UIImageJPEGRepresentation(image,0.3f);
UIImage *compressdImg30 = [UIImage imageWithData:newData];
NSLog(@"[after 0]newData.length=%u",[newData length]); // print 337613 in debug
UIImageWriteToSavedPhotosAlbum(compressdImg30,nil,nil,nil);
然后我插入 iPhone 并将文件复制到我的 Mac Mini,然后键入 "ls -ltr" 查看文件大小,然后显示 677947。
您可以使用ALAssetsLibrary的
-writeImageDataToSavedPhotosAlbum:metadata:completionBlock:
将图像数据保存到库的方法。
ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
[al writeImageDataToSavedPhotosAlbum:data metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"Completion block/Do check the error if any");
}];
试试看