2016-12-21 15 views
2

まだGIFイメージに60イメージの配列を作成しています。サイズ320 * 320。通常、github上でサードパーティライブラリNSGIFを使用しましたが、GIFイメージ処理を行うために80イメージを使用すると、アプリケーションメモリの警告とクラッシュが発生します。イメージの数iosのGIFイメージを作成する配列

NSDictionary *fileProperties = @{(__bridge id)kCGImagePropertyGIFDictionary: @{ 
             (__bridge id)kCGImagePropertyGIFLoopCount: @0, // 0 means loop forever 
             } 
           }; 

NSDictionary *frameProperties = @{(__bridge id)kCGImagePropertyGIFDictionary: @{ 
              //(__bridge id)kCGImagePropertyGIFDelayTime: @0.02f, // a float (not double!) in seconds, rounded to centiseconds in the GIF data 
              (__bridge id)kCGImagePropertyGIFDelayTime: @0.06f, 
              } 
            }; 

NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:nil]; 
NSString *savePath = [documentsDirectoryURL URLByAppendingPathComponent:@"animated.gif"]; 

CGImageDestinationRef destination = CGImageDestinationCreateWithURL((__bridge CFURLRef)savePath, kUTTypeGIF, FrameArr.count, NULL); 
CGImageDestinationSetProperties(destination, (__bridge CFDictionaryRef)fileProperties); 

for (NSUInteger i = 0; i < ImageArray.count; i++) { 
    @autoreleasepool { 
     UIImage *CaptureImage = [ImageArray objectAtIndex:i]; 

     CGImageDestinationAddImage(destination, CaptureImage.CGImage, (__bridge CFDictionaryRef)frameProperties); 
    } 
} 
if (!CGImageDestinationFinalize(destination)) { 
} 
else 
{ 
    //[shareBtn setHidden:NO]; 
} 
CFRelease(destination); 

iはGIFに80枚のを加えた画像..実際に持続し、あなたが作成しているGIFのフレームレートに依存

+0

質問にいくつかコードを追加してください。 – KAR

+0

ポストいくつかのコードをお願いします。 –

答えて

0

を作りたいです。 GIFを使用すると、おそらくフレームレートを8-10 fpsに下げることができ、それでもまともなものが見えます。

それ以外の場合は、いつでも別のライブラリを選択し、より良いパフォーマンスを期待できます。

+0

私はGIFを作るために10にfpsを設定しようとしましたが、GIFを作るために私の痛みを変えていません – Keyur

+0

他のライブラリ名を教えてください... – Keyur

関連する問題