我正在从NSData加载图像。原始图像是作为JPG创建的。当我尝试设置角半径并保存到磁盘时,我正在丢失我所做的更改。我将PNG保存为磁盘,因为我认为将在需要保留的图层上创建一个alpha通道。
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData:data]];
[imageView.layer setMasksToBounds:YES];
[imageView.layer setCornerRadius:10.0f];
data = UIImagePNGRepresentation(imageView.image);
// save data to file with .png extension
问题在于,当我将图像从文件系统重新加载回UIImage时,角半径不可见。
答案 0 :(得分:8)
CGContext可以拍摄“截图”。
UIGraphicsBeginImageContext(self.frame.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Now I use the "screenshot"
NSString *path = [NSHomeDirectory() stringByAppendingString:@"/image.jpg"];
if ([UIImageJPEGRepresentation(image, 1) writeToFile:path atomically:YES]) {
NSLog(@"save ok");
}
else {
NSLog(@"save failed");
}
答案 1 :(得分:1)
您在图像视图上设置了角半径,而不是图像。 PNG表示来自图像,而不是图像视图,因此转角半径丢失。