iPhone X:UIGraphicsGetImageFromCurrentImageContext返回具有潜在丢失质量的图像(“破碎像素”)

时间:2017-11-22 07:41:49

标签: ios iphone-x

注意:此错误仅在iPhoneX上重复,且仅以白色文字颜色重复。

我有UITextView可以改变帧大小。当我尝试使用UIGraphicsGetImageFromCurrentImageContext获取图像时,其返回的图像带有“破碎的像素”,靠近文本的边缘。

UIGraphicsBeginImageContextWithOptions(frame.size, opaque, 0.0)

image with scale = 0.0 (3.0 for iPhoneX as default)

但是当我将比例值从0.0更改为2.0时,“破碎的像素”已经消失,我得到的正常图像没有问题:

UIGraphicsBeginImageContextWithOptions(frame.size, opaque, 2.0)

image with scale = 2.0

其他iPhone或文字颜色不会出现此错误。

我尝试更改textView.textInputView.contentScaleFactor值,但这不是有用的。

感谢。

1 个答案:

答案 0 :(得分:0)

您将上下文呈现在哪里?

请注意,您通常希望图像/纹理宽度和高度为2的幂。这可能会被iPhone X的contentScaleFactor弄乱,这是3。

(现在大多数iOS设备都是2,这可以保持2的强大功能。但是当你用iPhone调用UIGraphicsBeginImageContextWithOptions时,它会在iPhone X上成为3.0。)