我希望用一个用户的facebook个人资料图片创建一个简单的节点,其中图片有圆角(或完整的圆圈).我按如下方式创建节点:
SKNode *friend = [[SKNode alloc] init]; SKTexture *texture = [SKTexture textureWithImage:user[@"fbProfilePicture"]]; SKSpriteNode *profilePic = [SKSpriteNode spriteNodeWithTexture:texture]; [friend addChild:profilePic];
除了使用SKCropNode(这似乎是一个糟糕的解决方法)之外,我找不到任何适当的文档来创建带圆角的图像
解决方法
试试这个:
// your profile picture UIImage *fbProfilePicture = [UIImage imageNamed:@"fbProfilePicture"]; // create the image with rounded corners UIGraphicsBeginImageContextWithOptions(fbProfilePicture.size,NO,0); CGRect rect = CGRectMake(0,fbProfilePicture.size.width,fbProfilePicture.size.height); [[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:20.0] addClip]; [fbProfilePicture drawInRect:rect]; UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); // use the roundedImage as texture for your sprite SKTexture *texture = [SKTexture textureWithImage:roundedImage]; SKSpriteNode *profilePic = [SKSpriteNode spriteNodeWithTexture:texture size:CGSizeMake(fbProfilePicture.size.width,fbProfilePicture.size.height)]; [self addChild:profilePic];
圆角部分来自this answer.