ObjecTips

Swift & Objective-C で iOS とか macOS とか

iOS 8.3 to iOS 9.0 API Differences Core Image

画像周りの変更点をまとめようと思ったら Core Image だけで済んでしまったので Core Image だけ。

関連記事は以下
iOS 8.3 to iOS 9.0 API Differences Core Image - ObjecTips
iOS 8.3 to iOS 9.0 API Differences オーディオ周り - ObjecTips
iOS 8.3 to iOS 9.0 API Differences ネットワークとWeb周り - ObjecTips
iOS 8.3 to iOS 9.0 API Differences CoreLocation - ObjecTips
iOS 8.3 to iOS 9.0 API Differences CoreTelephony - ObjecTips

CoreImage

CIContext

メタル対応

CIFeature

CITextFeature
CIFeatureTypeText
テキスト認識。
もしやと期待したけどAPIを見る限りOCRでの文字認識ではなくテキストの領域を認識するだけらしい。

@interface CITextFeature : CIFeature
{
}

@property (readonly) CGRect bounds;
@property (readonly) CGPoint topLeft;
@property (readonly) CGPoint topRight;
@property (readonly) CGPoint bottomLeft;
@property (readonly) CGPoint bottomRight;

@end

Private なプロパティやメソッドを調べてみてもテキストを取得するAPIはなかった。

CIFilter

フィルタのローカライズ名を取得可能に。
kCIAttributeFilterAvailable_iOS kCIAttributeFilterAvailable_Mac
でフィルタがどのバージョンで使えるようになったかを取得可能。
この attributes のいい用途あるかな?

あとどの CIFilter が追加されたかは API Diffs に載ってない上に Core Image Fiter Reference もなかなか更新が遅い。今年は Core Image のセッションが無いようなので自分でコードを走らせて確認する必要がありそう。

参考
Core Image Filter Reference

CIImage
+ (CIImage *)imageWithCVImageBuffer:(CVImageBufferRef)imageBuffer NS_AVAILABLE(10_4, 9_0);

CVImageBuffer から簡単に CIImage が作れるようになった!
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA); だったのが NS_AVAILABLE(10_4, 9_0) に更新。ますますOS XAPIの互換性が高まってきた。

CIImageAccumulator

フィードバック処理をするフィルタ。
OS X には 10.4 からあったものがついに iOS にも!

NS_CLASS_AVAILABLE(10_4, 9_0)
@interface CIImageAccumulator : NSObject

Quartz Composer で結構使ってたエフェクトなので個人的に嬉しい。

CIImageProvider

ヘッダを見たところ、既存の画像形式を経由しない独自処理での画像生成を行って CIImage にする橋渡しのクラスって感じ?
CGImageRef を作成する際の CGDataProviderRef の役割に近い気がする。