0

複数の画像をキャプチャしてフォルダーに保存する必要があるアプリケーションを開発しています。画像を超えるとアプリケーションがクラッシュします。また、画像を撮影している間、iPhone の速度が少し遅くなります。誰でもこれで私を助けてください。

画像をキャプチャするためのコード

UIImagePickerController *picker=[[UIImagePickerController alloc]init];
picker.delegate=self;   
picker.sourceType=UIImagePickerControllerSourceTypeCamera;

[self.navigationController presentModalViewController:picker animated:YES];

ファイルに画像を追加するためのコード

NSString  *pngImagePath =
[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES) lastObject]
stringByAppendingPathComponent:[NSString
stringWithFormat:@"%@.png",imageName]];

    [dataImage writeToFile:pngImagePath atomically:YES];
4

2 に答える 2

0

ここでは、画面に表示する前に画像のサイズを変更するための例として、次のコードを取り上げます。

+ (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 *image = YOUR_IMAGE;
NSData *imageData = UIImageJPEGRepresentation(image, .06); // Here's the level of compression
于 2013-04-15T11:14:13.903 に答える
0

@autoreleasepool を一度試してみてください。メモリリークが原因である可能性があります。ある程度まで維持する@autoreleasepool..

 @autoreleasepool
    {
      // any allocation for UIImage if u have just bring inside the autoreleasepool
        NSString  *pngImagePath =
        [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
        NSUserDomainMask, YES) lastObject]
        stringByAppendingPathComponent:[NSString
        stringWithFormat:@"%@.png",imageName]];
        [dataImage writeToFile:pngImagePath atomically:YES];
    }
于 2013-04-15T11:27:29.023 に答える