2010-12-14 11 views
6

イメージが1つしか表示されず、NSCGImageSnapshotRepでした。NSCGImageSnapshotRep、bitmapDataの取得方法

[NSCGImageSnapshotRep bitmapData]を試しましたが、クラスにはbitmapDataのセレクタがありません。

誰かがこのクラスを知っていますか? bitmapDataを入手するにはどうすればよいですか?


Webkit [DOMElement renderedImage]からこのNSImageを取得しています。

Create bitmap of a DOMElement Objective C

正しい使用が[NSBitmapImageRep representationUsingType:id properties:id]あり、この手段は場合には動作しません。

私は解決策X 10.5+または10.6以降を見つけることが喜んでいるよ、compatibilyについて考えていませんでした。

+1

10.5互換性が必要ですか、または10.6のみ可能ですか? – NSGod

+0

NSCGImageSnapshotRepは、NSImageRepのプライベートサブクラスです。残念ながら、NSBitmapImageRepのサブクラスが持つメソッドはありません。このイメージをファイルから読み込んで、どのように作成していますか? – NSGod

答えて

12
NSImage *img = [DOMElement renderedImage] ; 
[img lockFocus] ; 
NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithFocusedViewRect:NSMakeRect(0.0, 0.0, [img size].width, [img size].height)] ; 
[img unlockFocus] ; 

... 

// don't forget when you are done with the rep: 
[bitmapRep release] ; 
+0

これは、網膜ディスプレイに2倍の拡大画像を生成します。この回答は私のために働き、網膜ディスプレイ上に1倍の画像を生成しています:http://stackoverflow.com/a/24063823/105717 – Dov