5

この素晴らしいサイトからダウンロードした gif データを変換し、それを MPMoviePlayerController で再生可能な mp4に変換するために、この要点を書きました。

問題は、gif 全体をダウンロードしてから変換を開始する必要があることです。データを取得したときに変換したいと思いますが、それを確認することはできません.CGImageSourceCreateIncrementalで返されたデータを渡すことで可能かもしれません- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data.

誰かがこれを試みた、または例を知っていますか?

4

1 に答える 1

1

インクリメンタルはjpegとpngで機能することを知っています。コーディングは少し複雑ですが、ここまたはAppleのサイトでサンプルコードを見つけることができるはずです。アニメーションGIFで何ができるかを知る方法はありません。それが必要なことを行わない場合は、オープンソースのlibgifライブラリを見つけることができます。これは明らかにiOSに移植する必要があります。プロジェクトでlibjpegturboを使用して、JPEGのインクリメンタルデコードを取得しました。

参照するQuartzメソッドの問題の1つは、画像の先頭から常にインクリメンタルにデコードすることです。したがって、私が行ったように非常に大きな画像がある場合、ダウンロードのサイズが大きくなると、増分画像の各リクエストにかかる時間が長くなります。私は実際にこれにDTSインシデントを焼き付けました-Appleのエンジニアは、各リクエストが最後のイメージに基づいて構築されるように中間イメージをキャッシュするとよいと同意しましたが、現在はそうではありません。

于 2012-11-23T13:13:56.800 に答える