私のiPhoneにインターネット接続があるときに画像を保存しています。 これで、ドキュメントディレクトリに保存されているイメージをロードします。私はパスを取得していますが、イメージは表示されません。これで私を助けてください。 ありがとうございます。ドキュメントディレクトリからのイメージの読み込み方法/ IPHONE
+(UIImage *) getImagewithName:(NSString*) imagepath
{
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
UIImage *gimage=[UIImage imageWithContentsOfFile: [NSString stringWithFormat:@"%@/%@",docDir,imagepath]];
NSLog(@"%@/%@",docDir,imagepath);
return gimage;
}
+(void)DownloadImage:(NSString*)ImagePath {
if ([ImagePath isEqualToString:@""])
return;
UIImage *dimage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http:/uploads/%@",ImagePath]]]];
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSLog(@"pathIMAGEPATHS:::::::%@",ImagePath);
NSLog(@"path:::::::%@",docDir);
NSArray *patharr=[ImagePath componentsSeparatedByString:@"."];
NSString* Ext=[NSString stringWithFormat: @"%@",[patharr objectAtIndex:1]];
NSString *FilePath = [NSString stringWithFormat: [NSString stringWithFormat:@"%@/%@",docDir,ImagePath]];
if([Ext isEqualToString:@"png"])
{
NSLog(@"saving png");
NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(dimage)];
[data1 writeToFile:FilePath atomically:YES];
}
else if([Ext isEqualToString:@"jpeg"])
{
NSLog(@"saving jpeg");
//NSString *jpegFilePath = [NSString stringWithFormat:@"%@/test.jpeg",docDir];
NSData *data2 = [NSData dataWithData:UIImageJPEGRepresentation(dimage, 1.0f)];//1.0f = 100% quality
[data2 writeToFile:FilePath atomically:YES];
}
else
{
NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(dimage)];
[data1 writeToFile:FilePath atomically:YES];
}
NSLog(@"saving image done");
[dimage release];
}
画像が物理的に保存されており、プレビューで開くことができる場合は、(シミュレータとのやりとりは簡単です)チェックしましたか?私が見ることができるのは、一旦ネットワークからダウンロードされたディメンジョンがゼロであるかどうかを決してチェックしないことです。それが無ければ、あなたのコードはつづきますが最後に空のファイルを保存します。あなたはNSLog(@ "画像はダウンロードされていません")と早いリターンで、ディメンジョンにnil-checkを追加して終了してください。 – viggio24
Documentsディレクトリとのやりとりをデバッグするもう一つの良い方法は、 'Info.plist'でファイル共有を有効にすることです。その後、iTunesを開いてファイルをブラウズして、コンピュータに転送することができます。 – Jim