2011-10-28 8 views
5

पर वास्तविक प्रदर्शन छवि का आकार मिलता है मैं एक छवि प्रदर्शित करने के लिएNSImageView

NSImage *image = [[[NSImage alloc] initWithContentsOfURL:url] autorelease]; 
NSImageView *newImageView = nil; 
newImageView = [[NSImageView alloc] initWithFrame:[self bounds]]; 
[newImageView setImage:image]; 
[newImageView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; 

NSImageView आकार परिवर्तन NSimage नीचे कोड का उपयोग स्वचालित रूप से

enter image description here

कैसे वास्तविक प्रदर्शन आकार पाने के लिए एनएसआईमेज का?

कोई टिप्पणी

उत्तर

4

मैं iOS के लिए इस तरह के एक विधि है, तो आप इसे अनुकूलित करने के लिए सक्षम हो सकता है:

@implementation UIImageView (additions) 
- (CGSize)imageScale { 
    CGFloat sx = self.frame.size.width/self.image.size.width; 
    CGFloat sy = self.frame.size.height/self.image.size.height; 
    CGFloat s = 1.0; 
    switch (self.contentMode) { 
     case UIViewContentModeScaleAspectFit: 
      s = fminf(sx, sy); 
      return CGSizeMake(s, s); 
      break; 

     case UIViewContentModeScaleAspectFill: 
      s = fmaxf(sx, sy); 
      return CGSizeMake(s, s); 
      break; 

     case UIViewContentModeScaleToFill: 
      return CGSizeMake(sx, sy); 

     default: 
      return CGSizeMake(s, s); 
    } 
} 

- (CGRect)imageRect { 
    CGSize imgScale = [self imageScale]; 
    return CGRectCenteredInCGRect(CGRectFromCGSize(CGSizeScale(self.image.size, imgScale.width, imgScale.height)), self.frame); 
} 
@end 



CGRect CGRectCenteredInCGRect(CGRect inner, CGRect outer) { 
    return CGRectMake((outer.size.width - inner.size.width)/2.0, (outer.size.height - inner.size.height)/2.0, inner.size.width, inner.size.height); 
} 
0

आप NSImage पर आकार संपत्ति का उपयोग कर सकते प्रदर्शन आकार पाने के लिए आपका स्वागत है?

+0

आम तौर पर नहीं, कि वास्तविक छवि के मूल आकार है, नहीं आकार कि यह वर्तमान दृश्य में प्रदान की गई है , जहां यह एक अलग आकार के लिए स्केल किया गया है। –