UIImage の非透明部分だけを切り出す方法

Photoshopだと、非透明部分だけをトリムして切り取るのは簡単に出来ますが、UIImageに対しては、ちょっと面倒だったので備忘のために書いときます。

UIImage の切り取り自体は結構簡単なのですが、透明部分の判定が以外と面倒です。検索すると、wrep/UIImage-Trim ちょうど対応したUIImageカテゴリを発見。使ってみたのですが、どうもUIImageのScaleが2以上のときにうまく動いていないので対応。
tomohisa/UIImage-Trim
こちらにプロジェクトをforkして、scaleを考慮するように変更しました。

それに加えて、切り取る際にマージンを付ける機能も欲しかったので、


- (UIImage *) imageByTrimmingTransparentPixelsWithMargin:(UIEdgeInsets)insets;

このようなものも追加
それで、


UIImage * imageTrimmed = [image imageByTrimmingTransparentPixelsWithMargin:UIEdgeInsetsMake(10, 10, 10, 10)];

こんな感じでトリム出来るようになりました。本家のgithubにもpull requestを送ったのですが、マージしてもらえるでしょうかね?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください