その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

Assets Library を利用した高速フォトビューア

1年以上前にこちらの記事で Assets Library の読み込みを高速化する試行錯誤について書かせていただきましたが、そのときに作った『i走馬灯』という高速フォトビューアアプリを作り直して再リリースしました。



i走馬灯 〜超高速フォトビューア
※無料です

再リリースの経緯

もともと iPhone 4 のカメラの解像度でも高速表示は厳しかったのですが、iPhone4S になってさらにカメラの解像度が上がり、もはや「走馬灯」といえるスピードは出せなくなっていました。(iPhone 4Sの処理速度でも)


描画をOpenGLで行うことも検討してみましたが、

ALAsset *aseet = (ALAsset *)[self.assets objectAtIndex:currentAssetIndex];
ALAssetRepresentation *representation = [asset defaultRepresentation];
UIImage *img = [UIImage imageWithCGImage:[representation fullResolutionImage]
                                   scale:[representation scale]
                             orientation:[representation orientation]];

結局この ALAssetRepresentation から fullScreenImage なり fullResolutionImage なりで CGImageRef を取り出しているところが時間かかってるっぽくて、描画を高速化してもここがボトルネックになるんではと思い断念しました。


で、

ALAsset *asset = (ALAsset *)[self.assets objectAtIndex:currentAssetIndex_];
UIImage *img = [UIImage imageWithCGImage:[asset thumbnail]];

このように『ALAsset から直接 thumbnail メソッドで CGImageRef を取り出す』方式だと非常に高速で、それを6個、12個、24個と増やしても相変わらずチョッパヤだったので、もうサムネイル表示だけでいこうってことで、「サムネイルを高速表示するアプリ」として作り直した次第です。



ちょっといい感じの写真が iPhone に入ってなくてスクリーンショットを用意しなかったのですが、上記6分割、12分割の他にも、24分割モードがあります。


無料なのでぜひお試しいただけると幸いです!