CGImage

2011. 10. 26
●概要

CGImageRef不透過型はユーザが指定したサンプルデータに基づいて、ビットマップ画像とビットマップ画像マスクを表します。

ビットマップ(あるいはサンプリングされた)画像は、各ピクセルを単一のサンプルまたは元画像内のデータ位置を表すピクセルの矩形配列です。



●タスク別の関数

●ビットマップ画像の生成

CGImageCreate
CGImageCreateCopy
CGImageCreateCopyWithColorSpace
CGImageCreateWithJPEGDataProvider
CGImageCreateWithPNGDataProvider
CGImageCreateWithImageInRect
CGImageCreateWithMask
CGImageCreateWithMaskingColors

●画像マスクの生成

CGImageMaskCreate

●画像の保持と解放

CGImageRetain
CGImageRelease

●CFType IDの取得

CGImageGetTypeID

●画像についての情報の取得

CGImageGetAlphaInfo
CGImageGetBitmapInfo
CGImageGetBitsPerComponent
CGImageGetBitsPerPixel
CGImageGetBytesPerRow
CGImageGetColorSpace
CGImageGetDataProvider
CGImageGetDecode
CGImageGetHeight
CGImageGetShouldInterpolate
CGImageGetRenderingIntent
CGImageGetWidth
CGImageIsMask



●関数

CGImageGetAlphaInfo


CGImageAlphaInfo CGImageGetAlphaInfo (
    CGImageRef image
);

ビットマップ画像のアルファチャンネルを返します。

CGImageAlphaInfo定数は、(1)ビットマップがアルファチャンネルを含んでいるかどうか、(2)画像データ内の何処にアルファビットが位置しているか、(3)アルファ値が事前に乗算されているかを指定します。

有効な値は『定数』を参照してください。

画像パラメータが画像マスクを参照している場合、関数はkCGImageAlphaNoneを返します。

アルファ値は描画時にピクセルの不透明度を決定するものです。

image
:検査する画像を指定します。


CGImageGetColorSpace

CGColorSpaceRef CGImageGetColorSpace (
    CGImageRef image
);

ビットマップ画像の色空間を返します。

戻り値は指定されたビットマップ画像の元となる色空間、あるいは画像が画像マスクの場合はNULLになります。

色空間は必要に応じて保持と解放をする責任があります。

image:検査する画像を指定します。


CGImageGetHeight

size_t CGImageGetHeight (
    CGImageRef image
);

ビットマップ画像の高さを返します。

戻り値はビットマップ画像(または画像マスク)のピクセルの高さです。

image:検査する画像を指定します。


CGImageGetWidth

size_t CGImageGetWidth (
    CGImageRef image
);

ビットマップ画像の幅を返します。

戻り値はビットマップ画像(または画像マスク)のピクセルの幅です。

image:検査する画像を指定します。



●データ型

CGImageRef

typedef struct CGImage *CGImageRef;

ビットマップ画像情報をカプセル化した不透過型です。



定数

Alpha Information for Images

アルファコンポーネントデータのストレージオプション。

enum CGImageAlphaInfo {
    kCGImageAlphaNone,
    kCGImageAlphaPremultipliedLast,
    kCGImageAlphaPremultipliedFirst,
    kCGImageAlphaLast,
    kCGImageAlphaFirst,
    kCGImageAlphaNoneSkipLast,
    kCGImageAlphaNoneSkipFirst
};
typedef enum CGImageAlphaInfo CGImageAlphaInfo;

kCGImageAlphaFirst
アルファ成分は各ピクセルの最上位ビットに格納されています。
例:事前に乗算されていないARGB。

kCGImageAlphaLast
アルファ成分は各ピクセルの最下位ビットビットに格納されています。
例:事前に乗算されていないRGBA。

kCGImageAlphaNone
アルファチャンネルがありません。
ピクセルの合計サイズは、色空間における色成分の数に必要な容量より大きい場合、最下位ビットは無視されます。
この値はkCGImageAlphaNoneSkipLastと同等です。

kCGImageAlphaNoneSkipFirst
アルファチャンネルがありません。
ピクセルの合計サイズは、色空間における色成分の数に必要な容量より大きい場合、最上位ビットは無視されます。

kCGImageAlphaOnly
色データが無く、アルファチャンネルのみです。

kCGImageAlphaNoneSkipLast
アルファチャンネルがありません。
ピクセルの合計サイズは、色空間における色成分の数に必要な容量より大きい場合、最下位ビットは無視されます。
この値はkCGImageAlphaNoneと同等です。

kCGImageAlphaPremultipliedFirst
アルファ成分は各ピクセルの最上位ビットに格納され、色成分はこのアルファ値が既に乗算されています。
例:事前に乗算済のARGB。

kCGImageAlphaPremultipliedLast
アルファ成分は各ピクセルの最下位ビットに格納され、色成分はこのアルファ値が既に既に乗算されています。
例:事前に乗算済のRGBA。

CGImageAlphaInfo定数は、(1)ビットマップがアルファチャンネルを含んでいるかどうか、(2)画像データ内の何処にアルファビットが位置しているか、(3)アルファ値が事前に乗算されているかを指定します。

関数CGImageGetAlphaInfoを呼び出すことによって、画像のCGImageAlphaInfo定数を取得することができます。
(CGImageAlphaInfo定数が一部を成すCGBitmapInfo定数は、関数CGImageCreateで提供されます)

Quartzは、『元』となる新たに塗る一ピクセルの一色要素と、『対象』となる背景画像の一色要素を、線形補間式を使用して対象画像の色成分と元画像の色成分を結合することによってアルファブレンディングを実現します。

Quartzは画像の事前に乗算されたアルファのみをサポートします。

Quartzでは指定された他の色値を事前に乗算する必要はありません。


Image Bitmap Information

ビットマップ画像の成分情報。

enum {
    kCGBitmapAlphaInfoMask = 0x1F,
    kCGBitmapFloatComponents = (1 << 8),
    kCGBitmapByteOrderMask = 0x7000,
    kCGBitmapByteOrderDefault = (0 << 12),
    kCGBitmapByteOrder16Little = (1 << 12),
    kCGBitmapByteOrder32Little = (2 << 12),
    kCGBitmapByteOrder16Big = (3 << 12),
    kCGBitmapByteOrder32Big = (4 << 12)
};
typedef uint32_t CGBitmapInfo;

kCGBitmapAlphaInfoMask
アルファ情報のマスク。
ビットマップに含まれているアルファチャンネルの指定と、どのようにアルファチャンネルを生成するかを指定する際に、アルファ情報の抽出に使用します。

kCGBitmapFloatComponents
ビットマップの成分は浮動小数点値です。

kCGBitmapByteOrderMask
ピクセルフォーマットのバイトオーダーです。

kCGBitmapByteOrderDefault
デフォルトのバイトオーダーです。

kCGBitmapByteOrder16Little
16ビットのリトルエンディアンフォーマットです。

kCGBitmapByteOrder32Little
32ビットのリトルエンディアンフォーマットです。

kCGBitmapByteOrder16Big
16ビットのビッグエンディアンフォーマットです。

kCGBitmapByteOrder32Big
32ビットのビッグエンディアンフォーマットです。

アプリケーションはメモリ内に格納するピクセルデータを、ARGBフォーマットを使用して、どのようにデータの読み込むかを処理する必要があります。

コードが正確に記述されていない場合、データを読み違えて色やアルファが間違った表示になる可能性があります。

Quartzのバイトオーダー定数は、ピクセルフォーマットのバイトオーダーを指定します。

Quartzのバイトオーダーの指定には、適切な定数とbitmapInfoパラメータをビット単位のOR演算子で組み合わせて使用します。



参考文献

CGImage Reference

猫にはわからないプログラミング/不透過型(opaque data type)






bose_soundlink_revolve
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
03 | 2017/04 | 05
Sun Mon Tue Wed Thu Fri Sat
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

bose_soundlink_revolve
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR