Ios 在UIImageView中避免白色背景

Ios 在UIImageView中避免白色背景,ios,objective-c,uiimageview,png,Ios,Objective C,Uiimageview,Png,我有.png图像,背景是白色的。我想要一个快速的解决方案,将白色背景转换为透明背景(代码解决方案),因为应用程序背景是灰色而不是白色的。 我已经试过CSS(),但它不起作用 -(void)getImageFromeRequestedUrl:(NSString*)urlRequested { NSString *userName = @"userName"; NSString *password = @"passWord"; NSMutableURLRequest *urlRequest = [[

我有.png图像,背景是白色的。我想要一个快速的解决方案,将白色背景转换为透明背景(代码解决方案),因为应用程序背景是灰色而不是白色的。 我已经试过CSS(),但它不起作用

-(void)getImageFromeRequestedUrl:(NSString*)urlRequested {
NSString *userName = @"userName";
NSString *password = @"passWord";
NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlRequested]];
NSString *basicAuthCredentials = [NSString stringWithFormat:@"%@:%@", userName, password];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", AFBase64EncodedStringFromString(basicAuthCredentials)];
[urlRequest setValue:authValue forHTTPHeaderField:@"Authorization"];
AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Response: %@", responseObject);
    self.image.image = responseObject;
    self.image.frame = CGRectMake(0, 0, 300, 300);
    self.image.center = self.image.superview.center;
    self.image.backgroundColor = [UIColor clearColor];

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Image error: %@", error);
}];
[requestOperation start];
}
问题 您的imageView背景色我认为是白色的,因为默认情况下是白色的。另外,当你在photoViewer中打开透明的.png图像时,它们的背景看起来是白色的,但事实并非如此。如果你有一个像PhotoShop这样的工具,你可以打开它,看到不同之处

解决方案 要在UIImageView中处理透明png图像,需要将imageView背景色设置为透明

清晰的颜色使imageView背景透明:

UIImageView *imageView = [[UIImageView alloc] init];
imageView.backgroundColor = [UIColor clearColor];

另外,尝试将视图背景颜色更改为白色以外的其他颜色,如果白色部分更改颜色,则图像是透明的,并且配置正常。

如果您的意思是实际物理图像背景为白色,则使用UIImageView可以解决此问题。但请记住,只有当背景真的是白色(如rgb#ffffff)时,这才有效。此外,如果图像中的其他元素为白色,它也将被着色(或者在您的情况下,消失)。哦,你至少需要7分钟

UIImage *yourImage = ...
UIImageView *yourImageView = ...
...
yourImageView.image = [yourImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
yourImageView.tintColor = [UIColor clearColor];

但是,如果您只是自己在一些图形程序中修改实际图像,效果会更好。

您可能还需要将
不透明属性设置为

不会改变任何内容。现在您没有透明图像,您想按代码制作吗?然后这个问题需要在其他地方,在那里你需要做额外的算法,或者阅读如何丢失png图像的背景。我用photoshop来处理这些问题。我不明白为什么你会尝试设置css图片,而css与objective-c毫无关系,也没有办法设置任何css。这一行把我弄糊涂了,给人的印象是有些东西你没有告诉我们。可能的副本也共享一些代码。@Popeye我使用的是Pixate,这是一个允许你在iOs中使用CSS的框架!你应该告诉我们。这是我们需要知道的一些重要信息。对我们中的一些人来说,仅仅使用CSS(Pixate)是毫无意义的。