IOS:掩蔽图像,考虑视网膜比例因子
我想通过传递另一个图像作为遮罩来遮罩一个图像。我可以遮罩图像,但生成的图像看起来不太好。它的边界参差不齐 我想这个问题与视网膜图形有关。两个图像的缩放特性不同,如下所示:IOS:掩蔽图像,考虑视网膜比例因子,ios,uiimage,core-graphics,cgimage,Ios,Uiimage,Core Graphics,Cgimage,我想通过传递另一个图像作为遮罩来遮罩一个图像。我可以遮罩图像,但生成的图像看起来不太好。它的边界参差不齐 我想这个问题与视网膜图形有关。两个图像的缩放特性不同,如下所示: 要遮罩的图像的比例值为1。此图像的分辨率通常大于1000x1000像素 我希望生成的图像(仅具有黑白颜色的图像)所依据的图像的比例值为2。此图像的分辨率通常为300x300像素 生成的图像的比例值为1 我使用的代码是: + (UIImage*) maskImage:(UIImage *)image withMask:(UIIm
+ (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
CGImageRelease(mask);
UIImage *maskedImage = [UIImage imageWithCGImage:masked ];
CGImageRelease(masked);
return maskedImage;
}
我怎样才能得到一个符合视网膜比例的蒙版图像呢?我也有同样的问题。这条线似乎忽略了比例因子
UIImage *maskedImage = [UIImage imageWithCGImage:masked];
所以你应该自己画这个图像。替换为以下内容:
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);
CGContextDrawImage(context, rect, masked);
UIImage * maskedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
我觉得很好
编辑
或
你能行
UIImage * maskedImage = [UIImage imageWithCGImage:masked scale:[[UIScreen mainScreen] scale] orientation:UIImageOrientationUp];
如果它对你有帮助,你应该考虑确认答案。我在2013年7月3日问了这个问题,第一个答案是1月8日。在这段时间里,我转移到了不同的项目,我没有检查答案是否有用,如果我不确定,我怎么能接受任何答案。我只是想结束这个问题,但不知道怎么做。不难找到。。。
UIImage * maskedImage = [UIImage imageWithCGImage:masked scale:[[UIScreen mainScreen] scale] orientation:UIImageOrientationUp];