2012-03-02 8 views
13

के अंदर है, मैं एक छवि के रूप में एक NSView की सामग्री को सहेजने की कोशिश कर रहा हूं, लेकिन केवल स्क्रॉलव्यू के अंदर दिखाई देने वाली छवि सहेजी गई है।संपूर्ण NSView सामग्री को सहेजना, जो एक NSScrollView

यहां दृश्य में लोड की गई वास्तविक छवि है: actual imagesaved image

वहाँ NSView में पूरी छवि को बचाने के लिए कोई तरीका है:

लेकिन यह कैसे मैं छवि को बचाने में सफल रहा हूँ है?

- (void)save 
{ 
    [self lockFocus]; 
    NSBitmapImageRep* rep = [[NSBitmapImageRep alloc] initWithFocusedViewRect:[self bounds]]; 
    [self unlockFocus]; 

    NSData* data = [rep representationUsingType:NSPNGFileType properties:nil]; 

    NSString* string = NSHomeDirectory(); 
    NSString* pth1 = [string stringByAppendingPathComponent:@"ttx.png"]; 

    [data writeToFile:pth1 atomically:YES]; 
} 

इस विधि देखें मैं सहेजना चाहते है:

यह कैसे मैं अपने NSView उपवर्ग बचत कर रहा हूँ है।

+3

अब आप कैसे है कि कर रहे हैं? – hamstergene

+0

@hamstergene मैंने अपने प्रश्न को कोड के साथ संपादित किया है जिसे मैं वर्तमान में सहेजने के लिए उपयोग कर रहा हूं। क्या यह सही तरीका है? – Alterecho

उत्तर

17

उपयोग -[NSView cacheDisplayInRect:toBitmapImageRep:]

NSBitmapImageRep* rep = [self bitmapImageRepForCachingDisplayInRect:self.bounds]; 
[self cacheDisplayInRect:self.bounds toBitmapImageRep:rep]; 
+0

यह इन दो विधियों का उपयोग कर काम करता है! मुझे नहीं पता था कि इन तरीकों का उपयोग कैसे करें। धन्यवाद! – Alterecho

+0

अंत में कुछ काम करता है। एसओ पर इतने सारे गलत, आंशिक या समस्याग्रस्त समाधान ... – mojuba

संबंधित मुद्दे