UIGraphicsBeginImageContext必须是Retina-aware?

时间:2012-07-22 19:09:51

标签: ios core-graphics core-image

我读过一些建议使用的帖子:

UIGraphicsBeginImageContextWithOptions((image.size), NO, 0.0f) 

而不是:

UIGraphicsBeginImageContext(image.size).

因为第一个在绘图时使用Retina刻度,否则会出现块状图像。

我对使用或不使用视网膜尺度选项感到有点困惑。

如果我有1000x1000像素的照片,并且我调用UIGraphicsBeginImageContext传递这些尺寸,我是不是要确切地指定我想要绘制多少点?那可以吗?

或者我应该调用UIGraphicsBeginImageContextWithOptions传递一半尺寸(500x500px)?这有什么不同吗?

2 个答案:

答案 0 :(得分:11)

您可以通过以下方法获取设备的比例值

[[UIScreen mainScreen] scale]

通过这些信息,您可以决定要绘制的点数。

答案 1 :(得分:11)

您可以像这样创建图像上下文:

<paths>
  <path>/a/b/c/d[e &lt; 3]</path>
  <path>/w/x/y/z[v &lt; 2]</path>
</path>