如何将 BMP 的一部分复制到 canvas?
How to copy part of a BMP to a canvas?
我有一个大位图 (pf24bit)。我只想将该图像的一部分(小矩形)复制到 canvas。 canvas 是双缓冲的。
frmTester.Canvas.CopyRect()
可以解决问题,但它有两个问题:
- 复制的图像有点损坏
- 太慢了。
BitBlt 非常快,但它会复制整个位图。
BitBlt
is super fast, but it will copy the entire bitmap.
实际上,不:BitBlt
允许您仅复制源的矩形部分,使用 x1
、y1
、cx
和 cy
参数。
但是,源矩形和目标矩形使用相同的宽度和高度,因此 BitBlt
不能用于拉伸(或缩放)您复制的部分。
不过,StretchBlt
允许您这样做。
我有一个大位图 (pf24bit)。我只想将该图像的一部分(小矩形)复制到 canvas。 canvas 是双缓冲的。
frmTester.Canvas.CopyRect()
可以解决问题,但它有两个问题:
- 复制的图像有点损坏
- 太慢了。
BitBlt 非常快,但它会复制整个位图。
BitBlt
is super fast, but it will copy the entire bitmap.
实际上,不:BitBlt
允许您仅复制源的矩形部分,使用 x1
、y1
、cx
和 cy
参数。
但是,源矩形和目标矩形使用相同的宽度和高度,因此 BitBlt
不能用于拉伸(或缩放)您复制的部分。
StretchBlt
允许您这样做。