我在设计一个应用程序,我正在创建一些
PaintCode的图像.
使用该程序,我获得了我创建的每个图像的实际代码,从而允许我选择插入代码或使用实际的图像.我想知道会消耗更少的内存,图像代码或实际的PNG?
我知道一个图像内存消耗是宽x高x 4 =内存中的字节,但我不知道代码生成的图像是更高的内存效率,更少的内存效率还是打破均匀?
鉴于不同的屏幕分辨率,此决定尤其重要.它更容易在代码中创建一个图像,并将其扩展到任何我想要的大小,而不是每次去Photoshop.
解决方法
只要最终图像尺寸(点尺寸)与显示尺寸(点尺寸)相同,则根本没有区别.最终在你的应用程序中显示的是100×100位图.这些都是相同数量的位,无论他们如何获得开始.
内存被浪费的地方是保持在比实际显示在界面上的图像更大(点维度)的图像上.
如果我从我的应用程序包中加载3MB PNG,将其缩放到100×100,并将其绘制在界面中,放开原始的3MB PNG,结果与后备存储中的内存量完全相同,就像我画的自己使用Core Graphics(这是PaintCode可以帮助你做什么 – 最终什么都不能做你自己)的100X100图形上下文的内容.
PaintCode只是为了恐惧或无知或懒惰或因为已经拥有他们想要重用的矢量艺术的人们的拐杖,不想自己编写Core Graphics代码.最终它会产生完全相同的Core Graphics代码.核心图形绘制成一个位图(图形上下文).