函数编写】 棋子位图的原始像素放在全局数组unsigned char *g_pRawChessBmpBits中, 棋盘位图的原始像素放在全局数组unsigned char *g_pRawBoardBmpBits中, 函数的功能是,利用这两个原始像素数组,根据参数传下来的尺寸、坐标和透明度,计算新的半透明效果的玻璃棋子位图的像素值,并放在第一个参数指定的数组中。(不得修改两个全局数组) */ //--------------------------------------------------------------------------------------------------------------------------------------------------------- void ModifyChessBmp( unsigned char *pPixel, //将修改后的像素RGB值放在这个数组中 int iChessBmpWidth, //棋子位图的宽度(以像素为单位) int iChessBmpHeight, //棋子位图的高度(以像素为单位) int iBoardBmpWidth, //棋盘位图的宽度(以像素为单位) int iDrawingX, //棋子位图被贴到棋盘位图的X坐标(水平向右为正向)(以像素为单位) int iDrawingY, //棋子位图被贴到棋盘位图的Y坐标(垂直向下为正向)(以像素为单位) float fTransparency //透明度,值为0.0-1.0 ) { }
时间: 2023-08-15 16:36:52 浏览: 147
编写函数,求出"1/(1X2)-1/(2X3)+1/(3X4)-1/(4X5)+…"前n项的和,函数以n为参数,它是用户所输入的值。def02.py
5星 · 资源好评率100%
这段代码的功能是根据给定的参数,将棋子位图和棋盘位图合成为一个半透明的图像,并将像素值存储在指定的数组中。具体操作如下:
1. 首先需要根据传入的参数计算出棋子位图在棋盘位图上的实际位置。这可以通过将棋子位图的左上角坐标加上棋子在棋盘上的位置坐标得到。这个位置坐标是以像素为单位的,可以通过乘以每个格子的宽度和高度得到实际的坐标值。
2. 然后需要遍历棋子位图的每个像素,根据透明度和棋盘位图的像素值,计算出新的半透明像素值。具体计算方法是将棋子位图的像素值乘以透明度,将棋盘位图的像素值乘以(1-透明度),然后将两者加起来得到新的像素值。
3. 最后需要将新的像素值存储在指定的数组中,这可以通过指针运算来实现。每个像素由三个字节表示,分别是红、绿、蓝三个分量,因此需要将数组指针向后移动三个字节,才能存储下一个像素的值。
阅读全文