【问题标题】:NSImage initWithContentsOfFile returns nilNSImage initWithContentsOfFile 返回 nil
【发布时间】:2014-10-29 17:38:19
【问题描述】:

您好,我正在尝试将图像从文件加载到 NSImage,但 aImage 始终为零。我在这里做错了什么?

NSImage * aImage = [[NSImage alloc]initWithContentsOfFile: @"/Users/Thilina/Desktop/Other/20140818_163933_Fotor_Collage.jpg" ];
[imgPic setImage:aImage];

【问题讨论】:

  • "filename 参数应该包含标识图像数据类型的文件扩展名。该方法从注册到 NSImage 的那些中查找处理该数据类型的 NSImageRep 子类。"
  • 你能举个例子吗?因为没有这样的方法。谢谢

标签: objective-c xcode macos cocoa osx-yosemite


【解决方案1】:

这是一个例子。

- (void)getMyImage {
    NSImage *img = [self getImage:filePath];
}

- (NSImage *)getImage:(NSString *)path {
    NSArray *imageReps = [NSBitmapImageRep imageRepsWithContentsOfFile:path];
    NSInteger width = 0;
    NSInteger height = 0;
    for (NSImageRep * imageRep in imageReps) {
        if ([imageRep pixelsWide] > width) width = [imageRep pixelsWide];
        if ([imageRep pixelsHigh] > height) height = [imageRep pixelsHigh];
    }
    NSImage *imageNSImage = [[NSImage alloc] initWithSize:NSMakeSize((CGFloat)width, (CGFloat)height)];
    [imageNSImage addRepresentations:imageReps];
    return imageNSImage;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    相关资源
    最近更新 更多