0

iPhoneのフォトライブラリ内のすべての画像の合計サイズを見つける必要があります. 私は Assets Library フレームワークを使用しており、画像の数を正常に見つけました。ただし、画像のサイズが小さく、MB に変換すると間違った結果が得られます。以下はソースコードです。

 ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {

    [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
     {
         if ([[asset valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {

             UIImage *image = [UIImage imageWithCGImage:asset.defaultRepresentation.fullResolutionImage];
             [self performSelectorOnMainThread:@selector(usePhotolibraryimage:) withObject:image waitUntilDone:NO];
         }
     }];
}
 failureBlock:^(NSError *error) {
     NSLog(@"%@",error.description);
 }];


- (void)usePhotolibraryimage:(UIImage *)myImage{

    //Do your all UI related and all stuff here

    NSData *imageData = UIImageJPEGRepresentation(myImage, 0.5);

    int imageSize = imageData.length/1024;
    totalImageSize = totalImageSize+imageSize;
}

ただし、画像をMBに変換しているときに、すべての画像の数が間違っていることを示しています。何が間違っているのか教えてください。

4

2 に答える 2

2

asset.defaultRepresentation.size を使用

表現のファイルのサイズをバイト単位で返します。

  • (ロングロング)サイズ

Apple doc:リンク

于 2013-07-02T06:30:19.887 に答える
0

コードint imageSize = imageData.length/1024;内 これにより、サイズが KB で表示されます。
MB で表示する場合は、1024 で再度割ります。

そして type の totalImageSize を作りNSIntegerます。

ここに NSData の長さのリンクがあります

于 2013-07-02T06:47:15.037 に答える