2010-12-14 21 views
6

Yalnızca bir gösterim içeren bir görüntü aldım ve bu bir NSCGImageSnapshotRep idi.NSCGImageSnapshotRep, nasıl bitmapData olsun

[NSCGImageSnapshotRep bitmapData]'u denedim, ancak sınıfın bitmapData için seçicisi yok.

Birisi bu sınıfı biliyor mu? bitmapData'u nasıl alabilirim?


Bu NSImage Webkit [DOMElement renderedImage]'dan alıyorum.

Create bitmap of a DOMElement Objective C

doğru kullanımı bu durumda çalışmadığı anlamına gelir, [NSBitmapImageRep representationUsingType:id properties:id] olduğunu.

Ben compatibily düşünmedim, ben bir çözüm 10.5 ve üzeri veya 10.6+ bulmak için memnuniyet duyarız.

+1

10.5 uyumluluğa mi ihtiyacınız var, yoksa sadece 10.6-bir olasılık mı? – NSGod

+0

NSCGImageSnapshotRep, NSImageRep'in özel bir alt sınıfıdır. Ne yazık ki, NSBitmapImageRep'in bir alt sınıfının gerektirdiği yöntemlere sahip değildir. Bu görüntüyü bir dosyadan okuyarak nasıl yaratıyorsunuz? – NSGod

cevap

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

Bu, retina ekranlarında 2x ölçekli bir görüntü üretir. Bu cevap benim için çalıştı, retina ekranlarında 1x görüntü üretiyordu: http://stackoverflow.com/a/24063823/105717 – Dov