我正在尝试将图像流式传输到 GPU,并使用 SKSpriteNode。这些图像不在我的捆绑包中,我想知道是否有某种方法可以使用 UIImage 而不是 imageNamed:
我目前的想法是
URL -> NSData -> UIImage -> addToFile: -> imageNamed:
我可以添加到路径并以这种方式调用图像,或者当 UIImage 不包含在包中时,动态引用 UIImage 的最佳方式(是否可能)是什么?
我正在尝试将图像流式传输到 GPU,并使用 SKSpriteNode。这些图像不在我的捆绑包中,我想知道是否有某种方法可以使用 UIImage 而不是 imageNamed:
我目前的想法是
URL -> NSData -> UIImage -> addToFile: -> imageNamed:
我可以添加到路径并以这种方式调用图像,或者当 UIImage 不包含在包中时,动态引用 UIImage 的最佳方式(是否可能)是什么?
所以,显然 SKTexture 可以容纳 UIImage,我最终得到了一些类似的东西
NSString* urlString = @"http://superawesomeimage.com.jpg";
NSData* imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
UIImage* theImage = [UIImage imageWithData:imageData];
SKView* theView = [[SKView alloc] initWithFrame:self.view.frame];
[self.view addSubview:theView];
SKScene* theScene = [SKScene sceneWithSize:theView.frame.size];
SKSpriteNode* theSprite = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImage:theImage]];
[theScene addChild:theSprite];
快速回答
let url = NSURL(string: imageURL)
let data = NSData(contentsOfURL: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check
let theImage = UIImage(data: data!)
let Texture = SKTexture(image: theImage!)
let mySprite = SKSpriteNode(texture: Texture)
self.addChild(mySprite)
你有你的形象。为什么 addToFile: -> imageNamed: 来获取你的图像?做就是了:
NSURL *yourURL = [NSURL URLWithString:@"www.somepage.com/yourimage.png"];
NSData *data = [NSData dataWithContentsOfURL:yourURL];
UIImage *yourimage = [UIImage imageWithData:data];