1

以下のコードを使用して画像を保存しています ---

#define DOCUMENTS_FOLDER [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]


NSDate *now = [NSDate dateWithTimeIntervalSinceNow:0];
NSString *caldate = [now description];


NSString *filePath= [NSString stringWithFormat:@"%@/%@.jpg", DOCUMENTS_FOLDER,caldate];
imageurl = [NSURL fileURLWithPath:filePath];
dataImage = UIImagePNGRepresentation(myimage);
[dataImage writeToFile:filePath atomically:YES];

imageurlは以下のように印刷されています

file://localhost/Users/varmab/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/E2EDF729-4684-465B-8BE3-2C0ACFA2EC03/Documents/2013-03-18%2012:02:31%20+ 0000.jpg

今、保存した画像を表示したい、つまり、画像は上記のファイルパスに保存されています

以下のコードを試しました:

//1st process:
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageurl]];

//2nd process:
NSURL *urlString =imageurl;
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation([UIImage imageWithData:[NSData dataWithContentsOfURL:urlString]])];
UIImage *image = [UIImage imageWithData:imageData];

//3rd process:
NSData * imageData = [[NSData alloc] initWithContentsOfURL:imageurl ];
self.testingImageView.image = [UIImage imageWithData: imageData];

私を案内してください、私は何か間違っていますか?

4

3 に答える 3

4

このメソッドを直接使用しないでください:

 - (id)initWithContentsOfFile:(NSString *)path

UIImageクラスではすでに利用可能です。

[self.testingImageView setImage: [[UIImage alloc] initWithContentsOfURL:imageurl]];

これを試して、同じ問題が再び発生した場合はお知らせください。

注:画像の保存中に取得した古いものと似ているかどうか、画像のURLを確認してください。

于 2013-03-18T13:50:42.077 に答える
1

これにより、ドキュメント ディレクトリの下にあるすべてのファイルのパスが得られます。

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];

        NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory  error:nil];

        NSLog(@"files array %@", filePathsArray);

次のコードを使用して、filePathsArray 内の各オブジェクトのパスを取得できます。

    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[filePathsArray objectAtIndex:0]]; 
于 2013-03-18T13:51:10.007 に答える
0

ドキュメント
ディレクトリのパスを取得し、そこに画像を保存し、同じ場所から取得できます。

func getDocumentsDirectory() -> URL {
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let documentsDirectory = paths[0]
    return documentsDirectory
}

if let image = UIImage(named: "example.png") {
    if let data = UIImagePNGRepresentation() {
        let filename = getDocumentsDirectory().appendingPathComponent("copy.png")
        try? data.write(to: filename)
    }
}
于 2017-02-25T02:22:26.260 に答える