来自字节数组的NSImage

时间:2011-04-13 06:16:09

标签: cocoa monomac

我正在尝试在NSImageView中显示图像,图像包含在Byte数组中。我怎样才能做到这一点?根据我的理解,我需要将byte []转换为NSData变量并将其提供给NSImage。它是否正确?我该怎么做?我已经尝试过投射,但这不起作用,并且似乎没有内置任何转换......

我尝试了以下内容:

铸造:

NSData bytesAsMacVariable = (NSData) imageAsBytes;

也试过

NSData bytesAsMacVariable = imageAsBytes as NSData;

最后,尝试传递一个byte [],好像它是一个NSData。

NSImage imageToShow = new NSImage(imageAsBytes);

这些都不会起作用,据我所知,NSImage或NSData都没有接受byte []进行转换的成员函数......

2 个答案:

答案 0 :(得分:3)

您正在转换为对象类型,但您应该转换为指针指向对象类型。
尝试更像

的东西
NSData *imageData = [NSData dataWithBytes:byteArray length:arrayLength];
NSImage *image = [[NSImage alloc] initWithData:imageData];
[imageView setImage:image];
[image release];

指针非常重要。

答案 1 :(得分:2)

您可以使用NSMutableData,如下所示:

new NSImage (new NSMutableData (imageAsBytes));