0

3枚の画像を取り、それをIMAGE_1、IMAGE_2、およびIMAGE_3としてドキュメントフォルダに保存したいと思います。画像数を3枚に制限したいのですが、4枚目は1枚目(旧IMAGE_1)から新しい「IMAGE_1」、5枚目は「IMAGE_2」というように保存されます。以下のコードは、画像をIMAGE_1、IMAGE_2、IMAGE_3、IMAGE_4、...として保存します。保存する画像の数を制限するにはどうすればよいですか?

- (void) saveImage:(UIImage*)image 
{
    NSData *imageData =
    [NSData dataWithData:UIImageJPEGRepresentation(image, 0.9f)];
    [imageData writeToFile:[self savePath] atomically:YES];
}

- (NSString*) savePath
{
    int i=1;
    NSString *path;
    do {
    path = [NSString stringWithFormat: @"%@/Documents/IMAGE_%d.jpg", NSHomeDirectory(), i++];
} while ([[NSFileManager defaultManager] fileExistsAtPath:path]); 

    return path;
}
4

1 に答える 1

1
static int i=1;  // Place it below your @implementation yourclassname

- (void) saveImage:(UIImage*)image {
    NSData *imageData = [NSData dataWithData:UIImageJPEGRepresentation(image, 0.9f)];
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    NSString *path = [self savePath];

    if([fileMgr fileExistsAtPath:path])
        [fileMgr removeItemAtPath:path error:NULL];
    [imageData writeToFile:path atomically:YES];
}
- (NSString*) savePath {
    if(i==4)
        i=1;
    return [NSString stringWithFormat: @"%@/Documents/IMAGE_%d.jpg", NSHomeDirectory(), i++];
}

それが役に立てば幸い。

于 2013-02-10T12:19:53.900 に答える