iPhone gif再生原理とソースコード(例)
前にiphoneのgifをして放送して、多くのブログを検索して、いくつかの方法があります
1)GIfを解析し,UIimageViewのanimationImageを用いてアニメーションを設定するのが原理である.このコードを書くのは牛人です.
2)UIWebViewでGIfを再生する
3)Openglを利用して実現する.http://www.cocoachina.com/iphonedev/sdk/2010/0416/1084.html
4)iphoneが持っているCGImageSource関連手法を利用して実現
以上の方法1,3は多くのGIF再生に対してサポートが悪く、特にそのようなGIFフレーム間に依存関係(あるいは圧縮された)があり、再生が不完全で、2つ目は使ったことがなく、1回しか再生できず、ループできないと言われています.
だから4つ目を選びました.ネットワーク上にはオープンソースGifViewがありますが、このコードはあまりよくありません.特にプリロード画像がある場合は、自動的に再生されます.私はいくつかの変更をしました.
ソース:メールアドレスに連絡してください[email protected]
1)GIfを解析し,UIimageViewのanimationImageを用いてアニメーションを設定するのが原理である.このコードを書くのは牛人です.
2)UIWebViewでGIfを再生する
[self.unreadWebView setOpaque:NO];
[self.unreadWebView setBackgroundColor:[UIColor clearColor]];
NSString* gifFileName = @"alert.gif";
NSMutableString* htmlStr = [NSMutableString string];
[htmlStr appendString:@"<img src=\""];
[htmlStr appendFormat:@"%@",gifFileName];
[htmlStr appendString:@"\" alt=\"picture\"/>"];
[self.unreadWebView loadHTMLString:htmlStr baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
3)Openglを利用して実現する.http://www.cocoachina.com/iphonedev/sdk/2010/0416/1084.html
4)iphoneが持っているCGImageSource関連手法を利用して実現
以上の方法1,3は多くのGIF再生に対してサポートが悪く、特にそのようなGIFフレーム間に依存関係(あるいは圧縮された)があり、再生が不完全で、2つ目は使ったことがなく、1回しか再生できず、ループできないと言われています.
だから4つ目を選びました.ネットワーク上にはオープンソースGifViewがありますが、このコードはあまりよくありません.特にプリロード画像がある場合は、自動的に再生されます.私はいくつかの変更をしました.
ソース:メールアドレスに連絡してください[email protected]