2016年8月25日木曜日

画像のまとめ

画像にはいろいろ種類があるのでわかったとこだけまとめ。

CGImageってなによ?

基本的なQuartzの画像データ。
頭のCGはCore Graphicsの意味。
Core Graphicsフレームワークは、Quartz描画エンジンをベースにしたC言語ベースのAPI。
出力に忠実な低レベルで軽量な2Dレンダリングを提供する。
CGRectとかCGPointなんて頭にCGが付くのもCore Graphics関係だよね?

Core Graphicsフレームワークで取り扱うもの

  • ハンドリング・パスベースの描画(ビットマップじゃなくドロー画像ということか?)
  • 変形
  • カラーマネジメント
  • オフスクリーン描画
  • パターン
  • グラデーションとシェード
  • 画像データ管理
  • 画像生成
  • マスキング
  • PDF文書生成
  • 表示
  • 分析(パース)

CGImageは構造体?

CGImageというクラスはない。型名としてCGImageを指定することができるが、以下のようにXcodeで「頭にstruct(構造体)って付けろ」って要求された。う〜んわからん。
struct CGImage *cgImage = [context createCGImage:ciImage fromRect:ciImage.extent];

CGRect、CGPointなんてのも構造体だから、CG〜はだいたい構造体として定義されとるのかな? こっちはわざわざstructを付けるように要求されないが。

CGImageRefとは?

以下は公式の説明を訳したものだけど、結局なんだかよくわからんかった。
CGImageRef不透明タイプは、ビットマップ画像とビットマップ画像マスクを意味し、あなたの供給するサンプルデータに基づく。
ビットマップ(もしくはサンプル)画像はピクセルの長方形の配列で、ソース画像中の一つのサンプルもしくはデータポイントを表している互いのピクセルである。

CIImageってなによ?

基本的なCore Imageのデータ。
CIImageクラスは画像を意味する。Core Imageの画像は変更不能(コードによって一から画像を作ったり、変更したりができないということだと思う)
CIImageオブジェクトを他のCore Imageクラス——CIFilter、CIContext、CIVector、CIColorなど——や、画像処理する際のビルトインCore Imageフィルターとともに利用することになる。
各種のソースからのデータが付いたCIImageオブジェクト(Quartz2D画像、Core Video画像バッファ(CVImageBufferRef)、URLベースのオブジェクト、NSDataオブジェクトを含む)を作ることができる。 

Core Imageフレームワークとは

静止画像とビデオ映像のリアルタイムに近い画像処理と分析(文字認識とか顔認識とか)のためのフレームワーク。
画像にフィルターかけたりすることができる。

UIImageってなによ?

UIImageオブジェクトは、iOSアプリで画像データを管理するための標準的なオブジェクト。既存の画像データから作る必要がある。(コードによって一から画像を作ったり、変更したりができないということだと思う)

0 件のコメント:

コメントを投稿