画像の付属情報メモ
Cocoa と言うよりCoreGraphicでいろいろな画像の(メタ|付属)情報を見た際の、それぞれの付属情報
メタ情報の取得方法はこんな感じ。
// CF で画像を取得し、付属情報を得る NSURL *url = [NSURL fileURLWithPath:_myCurrentPath]; CGImageSourceRef isr = CGImageSourceCreateWithURL((CFURLRef)url, NULL); if (isr) { // 画像の取得時のオプション。 NSDictionary *opt = [NSDictionary dictionaryWithObjectsAndKeys: (id)kCFBooleanTrue, (id)kCGImageSourceShouldCache, (id)kCFBooleanTrue, (id)kCGImageSourceShouldAllowFloat, NULL]; // 画像を取得 _cgImageRef = CGImageSourceCreateImageAtIndex(isr, 0, (CFDictionaryRef)opt); // 画像のメタ情報の取得 _imageMeta = (NSDictionary*)CGImageSourceCopyPropertiesAtIndex(isr,0,(CFDictionaryRef)opt); // メタ情報の出力 NSLog(@"imageMeta: %@",_imageMeta); CFRelease(isr); }
以下一覧。
拡張子 | Key | value | 簡単な説明 |
---|---|---|---|
bmp | -- | -- | 付加情報が立て横幅、色の種類(RGB/gray scale)や1dotのビット幅ぐらい。基本的な情報のみ。 |
psd | {8BIM} | レイヤー名が入ったNSDictionary型。KeyはLayerNames | それぞれのレイヤーにある画像の取得方法は不明 |
tiff | {TIFF} | 画像の圧縮率等を書いたNSDictionary型。 | 詳しくはよく知らない。 |
png | {PNG} | NSDictionary型。何の情報かは不明。 | DPIの値が小数点になっている。理由は不明。 |
jpg | {Exif} | NSDictionary型。Exifの情報だと思われる。 | jpgだけいろいろなタイプが入っている。このjpgは、JPEG2000ではない。 |
{JFIF} | NSDictionary型。何の情報かは不明。 | ||
{TIFF} | NSDictionary型。作成日や作成したソフト名などが入っている。 | ||
jp2 | -- | -- | jpeg2000という規格。なぜかメタ情報はない。 |
GIF | {GIF} | NSDictionary型。モーションGIFのみ。 | GIF。モーションGIFだと駒送りの間隔の秒数があるが、ただの一枚絵だと、メタ情報は無い。 |
pict | -- | -- | PICT形式。メタ情報無し |
まだあるけど以上。
pdf,epsなどの情報からはさすがに読み込めない。
修正:Keyの部分、{}で囲ってやる必要がある。
追加:15時12分、jp2,gif,pictを追加。メタ情報で判別するのもいい方法と思ったアタシが馬鹿でした。別の方法を模索します。つか、ファイルのMIMEタイプとか拾えないのかね・・・