gpt4 book ai didi

.net - 这个瓷砖橡皮擦可以更快吗?

转载 作者:行者123 更新时间:2023-12-03 16:14:59 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to manipulate images at the pixel level in C#

(4 个回答)


去年关闭。




当我在 C# 中制作基于图块的 map 编辑器时,我倾向于在 X、Y 轴上迭代并调用 Graphics.DrawImage() 将单个图块就位,从图块集位图到 map 位图。这个过程需要几秒钟才能完成,所以我只在加载新 map 或更改其图块集时执行一次。从那里开始的任何编辑都是仅编辑过的图块的相对较快的 blit。

现在,我今天早些时候坐下来考虑我的选择。 Graphics.DrawImage() 是允许指定源原点的三个(其他是 DrawImageUnscaled 和 DrawImageUnscaledAndCropped(?))中的唯一一个。 DrawImageUnscaled() 要快得多,但总是从源位图的左上角开始。

与 QuickBasic PSET 与 POKE 视频内存的速度,或 VB6 的 PSet 与 WinAPI 的 SetPixel 的速度形成鲜明对比的是,简单的 Get/SetPixel 循环与 DrawImageUnscaled 调用一样快,但进行了只有 DrawImage 才能进行的裁剪。

这现在已经足够快了,但我想知道像直接图像处理这样的东西如何能更快地加快速度?可能是 LockBits 的东西,一个我几乎一无所知的功能?

最佳答案

软件块传输似乎是一个严重的瓶颈。我会认真建议为这样的任务研究硬件加速绘图。

关于.net - 这个瓷砖橡皮擦可以更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/988434/

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