gpt4 book ai didi

c++ - 设计练习最好使用 mfc

转载 作者:太空狗 更新时间:2023-10-29 20:49:02 24 4
gpt4 key购买 nike

我被告知要设计一个有两种变体的画笔程序,一种使用大量空间和少量 CPU,另一种则相反。

这个想法(我被告知 - 所以不确定)是以某种方式保存屏幕快照而不是保存代表绘画之间的增量的 XOR 映射(我不知道它是什么意思)。

有人可以建议一种方法或添加相关 Material 的链接吗?

最佳答案

使用屏幕截图的明显位置是实现“撤消”命令。简单的内存消耗方法是在每次操作之前拍摄屏幕快照。如果用户点击“撤消”,您可以恢复旧屏幕。

为了节省内存空间,您只保存两个屏幕之间的差异,将它们异或在一起。就其本身而言,这实际上并没有节省任何空间,但它会将所有未更改的像素设置为 0。为了节省空间,您需要应用某种压缩。鉴于您通常可以预期相当大的区域全为零,游程编码可能会快速有效。对于游程编码,您通常会将一串相同的字节转换为两个字节,第一个保存游程的长度,第二个保存值。例如,一行中的 75 个零将被编码为 75 0

如果您想更进一步,您可以考虑使用图元文件,而不是保存异或位图。图元文件记录了在 Windows GDI 调用级别采取的操作,因此(例如)如果您在 10, 100 处绘制一个红色的 100x200 矩形,它基本上会记录——即,它会保存一个标识符说明要执行的 GDI 函数,以及提供给该函数的参数。在典型情况下,每个执行的“命令”平均可能需要 15-20 个字节。同时,它确实(经常)涉及更多的计算——例如,如果您画一个圆,重新运行图元文件需要重新光栅化圆而不是仅仅存储它产生的位。

关于c++ - 设计练习最好使用 mfc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1929112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com