7

我正在尝试将图像流式传输到 GPU,并使用 SKSpriteNode。这些图像不在我的捆绑包中,我想知道是否有某种方法可以使用 UIImage 而不是 imageNamed:

我目前的想法是

URL -> NSData -> UIImage -> addToFile: -> imageNamed:

我可以添加到路径并以这种方式调用图像,或者当 UIImage 不包含在包中时,动态引用 UIImage 的最佳方式(是否可能)是什么?

4

3 回答 3

17

所以,显然 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];
于 2013-10-10T03:01:19.870 回答
9

快速回答

    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)
于 2016-03-08T18:02:24.057 回答
0

你有你的形象。为什么 addToFile: -> imageNamed: 来获取你的图像?做就是了:

 NSURL *yourURL = [NSURL URLWithString:@"www.somepage.com/yourimage.png"];
 NSData *data = [NSData dataWithContentsOfURL:yourURL];
 UIImage *yourimage = [UIImage imageWithData:data];
于 2013-10-09T22:05:18.747 回答