Отображение NSImage из NSData - PullRequest
4 голосов
/ 14 марта 2011

Моя цель - отобразить изображение в виде.Учитывая, что у меня есть:

  • IBOutlet NSImageView * изображение для отображения моего изображения
  • NSData * imageData для чтения файла изображения
  • NSImage * imageView

В imageData хранится изображение (я использовал метод initWithContentsOfFile).

Теперь, если я инициализирую imageView с помощью:

NSImage *imageView = [[NSImage alloc] initWithContentsOfFile:path];

, я могу увидеть рендерингизображение правильно, но таким образом я дважды читаю из файловой системы.

Если я пытаюсь:

NSImage *imageView = [[NSImage alloc] initWithData:imageData];

Отображаемое изображение очень маленькое, например, большой палец

Whit CGImageRef:

CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)imageData, NULL);
CGImageRef imageRef= CGImageSourceCreateImageAtIndex(imageSource, 0, nil);
NSImage *imageView = [[NSImage alloc] initWithCGImage:imageRef size:NSZeroSize];

Изображение по-прежнему отображается слишком маленьким.

Как отобразить изображение в исходном разрешении?

1 Ответ

5 голосов
/ 07 октября 2011
NSImage *imageView = [[NSImage alloc] initWithData:(NSData *)imageData];
...