我希望用一个用户的facebook个人资料图片创建一个简单的节点,其中图片有圆角(或完整的圆圈).我按如下方式创建节点:
SKNode *friend = [[SKNode alloc] init]; SKTexture *texture = [SKTexture textureWithImage:user[@"fbProfilePicture"]]; SKSpriteNode *profilePic = [SKSpriteNode spriteNodeWithTexture:texture]; [friend addChild:profilePic];
解决方法
试试这个:
// 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.