Delphi   发布时间:2022-04-10  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了delphi – 使用PNG的效率与使用大文件的BMP的效率大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Delphi中编写了一个映射程序,用户可以在后台加载我存储在内存中的光栅图像.在一个案例中,用户成功加载了44MB BMP,但程序运行缓慢,当他们打印(我平铺输出)时,他们得到了Out Of resources错误.我将BMP转换为PNG(3MB),程序运行得更好,打印作业也成功了.

由于PNG必须扩展到相同大小的DIB,为什么会出现性能/资源差异?如果有什么需要更多的工作和内存分配来加载PNG.我错过了什么?

由于似乎没有任何明显的答案我会写一个小的演示项目,@R_637_9447@进一步研究.

解决方法

不同之处在于压缩.

BMP =原始数据
PNG =使用“无损”压缩的相同原始数据

这在编程圈中节省了超过1种…

>加载图像导致将更少的原始数据加载到ram中.
>然后,您正在处理较少的原始数据,因此您需要的资源更少.

平铺意味着你的问题是指数的例子……

44MB x 10块= 440MB

VS

3MB x 10块= 30MB

打印机不喜欢被传递大量数据,除了更昂贵的打印机之外,所有打印机都倾向于一次性打印和整个文档(例如缓冲整个流).

因此,从您的应用程序中,用户说“打印”…然后您的代码说“我将要发送10份这个”,打印机开始“缓存”440MB的原始数据.

大多数常见的家用打印机依靠PC来进行缓存并打印它所提供的内容,但标准的办公室打印机将执行缓存然后打印文档.

但是……我认为这是一个可以调整的可选项(我认为它因打印机而异).

编辑:

继承了游戏编程世界的一些东西:

http://www.gamedev.net/topic/450104-png-vs-bmp/

大佬总结

以上是大佬教程为你收集整理的delphi – 使用PNG的效率与使用大文件的BMP的效率全部内容,希望文章能够帮你解决delphi – 使用PNG的效率与使用大文件的BMP的效率所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。