什么消耗较少的内存实际图像或绘制的图像?

Jon*_*rft 10 cocoa cocoa-touch image ios

我正在设计一个应用程序,我正在使用PaintCode创建一些图像.

使用该程序,我获得了我创建的每个图像的实际代码,从而允许我选择插入代码或使用实际图像.我想知道什么会消耗更少的内存,图像代码或实际的PNG?

我知道图像内存消耗是width x height x 4 = bytes in memory但我不知道代码生成的图像是更高效的内存,更低的内存效率还是中断?

鉴于屏幕分辨率不同,此决定尤为重要.它更容易在代码中创建图像并将其扩展到我想要的任何大小,而不是每次都去Photoshop.

jus*_*tin 4

这个答案与其他答案不同,因为我的印象是图形上下文是您最常见的目的地 - 您并不总是渲染到离散位图。因此,出于典型绘图的目的:

我想知道什么会消耗更少的内存,图像代码还是实际的 PNG?

该代码很可能会大大减少内存消耗。

我不知道由代码生成的图像是内存效率更高、内存效率更低还是收支平衡?

有很多变量,并且没有简单的方程式可以告诉您对于任何给定的输入哪个更好。如果使用所见即所得创建起来足够简单,那么它的代码可能会小得多。

如果您需要为基于矢量的渲染器创建中间光栅化或图层,那么在添加第一层后,内存将大致相等。通常,人们确实/不应该将每个视图或层(不是 CALayer,顺便说一句)渲染到这些中间体,而是直接渲染到图形上下文中。当所有视图直接渲染到图形上下文中时,它们会写入相同的目的地。

通过代码,您还可以使用一些其他变量,这些变量有可能增加大量内存。字体加载和缓存的影响可能非常高,如果您发现需要最大限度地减少内存消耗,您使用的代码生成器不会检查如何实现这些资源的最佳缓存和共享。