先日からAPNGをApple標準関数で実装したり、Animation GIFを実装したりしましたが、結局APNGを仕様から実装しました。
色々紆余曲折があり、libpngやffmpegも調べたのですが、少し手順を踏まないと組み込めないサードパーティライブラリであることや余分な実装が一緒に載ってくるのが好ましくなかったので仕方なく仕様から実装しました。
libpngはAPNGが投票数が少なく採用されなかった経緯がありパッチで提供されているのも興味深かったです。
結局iOSに導入しやすいOpenCV(公式にサポートしている)を使って実装しました。
詳しくは資料を参考ください。
OpenCVをSwiftで利用する場合、Other Linker Flags
に-all_load
を指定しないとMatToUIImageが使えなかったりしますが、MatToUIImageは自分で書くこともできますので-all_load
がプロジェクトで利用しにくい場合や、後から使わない可能性がある場合は使わないのも選択肢です。
こういったパラメータが複数のリリースに向けたパッケージを追加した場合に問題起こすのはあるあるです。
しかしiOSではApple標準関数だけではAPNGの実装で困った方はいたと思うのですが、みんなどうしてたのでしょう。
結構長い期間その状態だったと思うのですが。
ニッチなのもあり情報が見当たらないですが独自に仕様から実装してたのですかね?
Swift Animation PNG Example
それでは良い開発ライフを。