我正在为基于PNG的图像格式编写C++库.对我来说,一个停止点是我不确定我应该如何在内存中布置像素数据; 据我所知,有两种实用方法:
PNG(libpng)的标准参考实现使用上面的方法2,而我已经看到其他人使用方法1.是一个比另一个更好,或者每个方法都有自己的优点和缺点,必须妥协被制作?此外,大多数图形显示系统使用哪种格式(可能是为了便于将我的库输出用于其他API)?
脱离我的头顶:
height * width大量的连续内存.然而,在#2的情况下,它可以自由地分配较小的连续大小的内存块width(也可以height是空闲的).(当您考虑每个像素的通道时,即使是中等大小的图像,#1也可能会失败.)