2

ユーザーがフォトアルバムから選択できるサムネイル画像を含むカスタムセルがあります。イメージを Core Data に保存するとパフォーマンスが低下することはわかっているので、ファイル システムを使用する必要があります。

誰もがこれに関するいくつかの優れたチュートリアルをお勧めします。そこに画像を保存していない場合、コアデータに正確に何を保存する必要がありますか。

サムネイルだけでなく、大きな画像も保存します。

4

3 に答える 3

4
UIImage*image = [UIImage imageNamed:@"the image you wish to save.jpg"];

//build the path for your image on the filesystem
NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir = [dirPath objectAtIndex:0];
NSString* photoName = @"imageName.jpg";
NSString *photoPath = [docsDir stringByAppendingPathComponent:photoName];

//get the imageData from your UIImage
float imageCompression = 0.5;
NSData *imageData = UIImageJPEGRepresentation(image, imageCompression);

//save the image                  
if(![imageData writeToFile:path atomically:YES]){
    return FALSE;
}

//store the imagePath to your model
photoModal.filePathImage = photoPath;

チップ:

  • 既存のファイルを上書きしないように、名前の重複を避けてください (警告が表示されることを心配しないでください)。
  • モデルが削除されているときに写真を削除することを忘れないでください
  • モデルに一致する論理パスとフォルダー構造を構築します。たとえば、album.photo には album という名前のフォルダーが必要で、その中にファイルを保存する必要があります。アルバム モデルを削除するときに役立ちます。
于 2012-07-04T16:56:31.087 に答える
2

コアデータdbに2つのフィールドが必要ですthumbnailPath::NSStringおよびoriginalPathNSString

ファイルマネージャを使用して、特定のパスにサムネイルと元の画像を作成します。したがって、次のようになります。..../thumbs/myPicture_thumb.jpg AND .... / originals / myPicture.jpg次に、この2つのパスをコアデータデータベースに保存します。

それらの1つを表示したい場合は、次のメソッドを使用しますUIImageimageWithContentsOfFile

それで全部です

于 2012-07-04T16:42:40.703 に答える
1

画像をにApplication Documents Folder保存し、画像のパスをCoreDataまたはsqliteに保存できます。画像とそのパスを参照してください。

于 2012-07-04T16:42:04.453 に答える