最近在写一个小RPG游戏引擎,在切分帧序列图片时碰到了一个很奇怪的问题:有的图片可以很完整地截取,然而有些图片却总是切不完整。一开始我反复地检查,确保每个小图的尺寸没有算错,但依然存在这个问题。还有一个更奇怪的问题,就是在绘制游戏地表时,使用某些图片会相当卡,CPU占用率相当高。于是我把这个问题单独拎出来研究了一下,最终解决了!现在我来浅谈这个问题。
首先来看看这个函数:
使用DrawImageUnscaled函数要求我们指定一个位置,一张图片(需要切分的“大图”)。其实还需要指定一个切图的尺寸,但由于这个函数是通过Graphics 实例绘制图片,因此这个大小应该由实例指定,我在程序中是这样使用的:
Bitmap img = new Bitmap(width, height);
Graphics g = Graphics.FromImage(img);
g.DrawImageUnscaled(operatingImage, -j * width, -i * height);
这样,被切分出来的图片就会保存在img里(width