我试图调整具有透明部分的PNG的大小,首先我使用了:
UIGraphicsBeginImageContextWithOptions(newSize, NO, 1.0);
[sourceImage drawInRect:CGRectMake(0,0, newSize.width, newSize.height)];
UIImage* targetImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
但是生成的图像是不透明的。然后,我读到默认情况下drawInRect将图像绘制为不透明,因此我将drawInRect行修改为:
[fromImage drawInRect:CGRectMake(0,0, newSize.width, newSize.height) blendMode:kCGBlendModeNormal alpha:0.0];
结果图像为空白,我认为drawInRect中应该有一些参数组合,这些参数可以保持图像的透明度。
我搜索了其他线程,到处都可以看到通用的大小调整代码,但是没有地方谈论具有透明部分的图像。
有人有主意吗?
最佳答案
CGRect rect = CGRectMake(0,0,newsize.width,newsize.height);
UIGraphicsBeginImageContext( rect.size );
[sourceImage drawInRect:rect];
UIImage *picture1 = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImagePNGRepresentation(picture1);
textureColor=[UIImage imageWithData:imageData];