Calendar
   1234
567891011
12131415161718
19202122232425
2627282930  
<< September 2010 >>
Recent Comments
Recent Trackback
Categories
Archives
Recommend
Recommend
たのしいCocoaプログラミング[Leopard対応版]
たのしいCocoaプログラミング[Leopard対応版]
木下 誠
iPhone開発に役立つぞ!
Recommend
詳解 Objective-C 2.0
詳解 Objective-C 2.0
荻原 剛志
世界一詳しいObjective-Cの本
Links
Member's Blog
Others
Profile
<< OS10.3で画像ファイルを読み込みCGImageRefに収める | main | 販売好調 >>
CGImageRefにおけるBit操作
 
特に今作っているソフトとは関係ないんだけど、フォトショップのような画像のビット操作を行うようなソフトを作る場合、Cocoaではどうするのがベストなんだろう?

例えば、JPGファイルなどをCoreGraphicsで読み込んで、CGImageRefとして扱う場合、Rawデータの直接的なアドレス操作って、どうやってやるんだ?

NSImageの場合だと、NSBitmapImageRefからRawデータにたどり着けるんだけど、これも結構無理矢理だしな〜なんかスマートじゃない気もする。

ToolBoxの時のように、PixcelMapをGWorldでビット操作するような、感覚ってOSXではどうやってやるんだろう?
特にCocoa,CoreGraphics等で…

イメージ全体を回転させたり、拡大させたり、ゆがませたりは、その代わりもの凄く楽になったけど、ビット操作もしたいときの操作方法が、いまいちどこにあるかわからない…

Cocoaの画像編集ソフトがあまりないのは、そういう理由なのかな?
 
| Cocoa疑問 | 00:54 | comments(1) | trackbacks(0) |
 
 
なんか遅レスっぽいんですけど気になったんで。

メモリ上にRAWデータ(_imageBuffer)がだらだら並んでる時に、

CGContextRef imageContext = CGBitmapContextCreate(_imageBuffer,img_width, img_height, cBitPerComponent, pitch, colorSpace, kCGImageAlphaPremultipliedFirst|kCGBitmapByteOrderDefault);

てな感じでmmapみたいなノリのCGContextRefが取り出せるんで、後は適当なタイミングでCGBitmapContextCreateImage(imageContext)してやるとCopyOnWriteなCGImageRefがスナップショット的につくれます。

内側のラッパーがCGContextRefなのがミソで、生でデータをbit操作してもいいし、Quartzでベジェ曲線を書いてもいいという中々汎用性の高い操作が可能です。
| るて | 2007/05/27 3:23 PM |
 







http://blog.cocoa-study.com/trackback/527351