我在 UIImageView 中显示的 UIImage 遇到了一个奇怪的问题。
如果我将 1024x1024 图像放在 173x173 图像视图中并设置“缩放填充”,则结果会出现锯齿。但是,如果我放入相同的图像,然后截取 imageview 的屏幕截图并将其分配回去,图像就会完美显示。这让我很困扰,因为屏幕截图应该是我在图像视图中看到的确切像素。
左边是直接分配图像的结果。右侧是对同一图像进行截图并将其分配回去。请注意 Es 在左侧是锯齿状的,但在右侧是平滑的。
这是图像视图的内容模式的问题还是在截图过程中发生的事情?
for(UIImageView* placeholderView in self.placeholderImageViews)
{
//assigning a 1024x1024 image into a smaller image view results in an aliased image here
placeholderView.image = imageToDisplay;
//this code makes the image appear perfectly scaled down
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
{
UIGraphicsBeginImageContextWithOptions(placeholderView.frame.size, NO, [UIScreen mainScreen].scale);
}
else
{
UIGraphicsBeginImageContext(placeholderView.frame.size);
}
[placeholderView.layer renderInContext:UIGraphicsGetCurrentContext()];
screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//save the result
placeholderView.image = screenshot;
}