我正在尝试在NSImageView中显示图像,图像包含在Byte数组中。我怎样才能做到这一点?根据我的理解,我需要将byte []转换为NSData变量并将其提供给NSImage。它是否正确?我该怎么做?我已经尝试过投射,但这不起作用,并且似乎没有内置任何转换......
我尝试了以下内容:
铸造:
NSData bytesAsMacVariable = (NSData) imageAsBytes;
也试过
NSData bytesAsMacVariable = imageAsBytes as NSData;
最后,尝试传递一个byte [],好像它是一个NSData。
NSImage imageToShow = new NSImage(imageAsBytes);
这些都不会起作用,据我所知,NSImage或NSData都没有接受byte []进行转换的成员函数......
答案 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));