1

多くの UIImage を (より適切な言葉がないため) マージして、それらをメールで送信したり、1 つのファイルとして Dropbox にアップロードしたりして、マージを解除できるようにする最良の方法を知りたいです。別のiDeviceからの後日。

現在、画像データをオブジェクトとして、ファイル名をキーとして、画像を NSMutableDictionary に保存しています。次に、NSKeyedArchiver を使用して、NSMutableDictionary から NSData オブジェクトを作成します。このデータをメールに添付して送信し、別のデバイスにインポートしました。そこで、NSMutableDictionary を NSKeyedUnarchiver することができ、すべての画像とそれぞれのファイル名がすぐに利用できるようになります。これは、画像が 5 ~ 10 個しかない場合はうまく機能しますが、画像が 50 ~ 100 個になると、NSMutableDictionary が大きくなり、明らかにメモリの問題が発生します。以下は私が現在使用しているコードです

NSData *imageToAddToEmail;
NSMutableDictionary *dictionaryToSend = [[NSMutableDictionary alloc] init];
NSArray *filePathBrokenUp;


for (int i = 0; i < [arrayForPhotoURLs count]; i++)
{
    imageToAddToEmail = UIImagePNGRepresentation([[UIImage alloc] initWithData:[NSData dataWithContentsOfFile:[arrayForPhotoURLs objectAtIndex:i]]]);
    filePathBrokenUp = [[arrayForPhotoURLs objectAtIndex:i] componentsSeparatedByString:@"/"];

    if (imageToAddToEmail != nil) [dictionaryToSend setObject:imageToAddToEmail forKey:[filePathBrokenUp lastObject]];
}


NSData *dataToSend = [NSKeyedArchiver archivedDataWithRootObject:dictionaryToSend];

後でマージを解除する必要があることを念頭に置いて、50〜100個のUIImageをマージする方法について、誰かが私を正しい方向に向けることができますか? ありがとう。

4

0 に答える 0