我有一个png,我正在用作另一个图像的图像蒙版。两个图像都有圆角,用resizableImageWithCapInsets保存:图像(不是蒙版)是自动调整大小的,因为它是UIProgressView的progressImage。
我遇到的问题是,如果我使用CGImageMaskCreate创建一个蒙版并简单地给它宽度为UIProgressView的宽度,则蒙版图像被拉伸(即,它不保留大写)。
我想要做的是创建一个具有可调整大小的大写的新UIImage,手动调整图像大小(可能通过将其置于UIImageView中),获取调整大小的掩码图像版本的数据表示,然后创建一个新的使用该数据生成图像并将该图像用作蒙版。但是,似乎即使我使用图像创建UIImageView,然后适当地设置UIImageView的帧,将图像从视图中取出也会得到我的原始图像。
有没有办法获得resizableImageWithCapInsets:image的结果,而实际上没有将它绘制到UI中?
答案 0 :(得分:0)
我会尝试将图像逐片绘制到CGContext中,您可以通过创建UIImage来访问数据提供者或提取NSData
答案 1 :(得分:0)
- (UIImage*) drawImage:(UIImage *)image
atSize:(CGSize) size
{
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
CGImageRef cgImage = CGBitmapContextCreateImage(context);
UIImage *outImage = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
UIGraphicsEndImageContext();
return outImage;
}