正在加载图片...
DstXl=bi bi width else vIsible=fAlSE SrcX0=DstX0- XOffset;(应DstX0在原图中的x坐标 SrcX1=DstX1- xOffset应Dstx1在原图中的x坐标 Rect width=DsX1- IstO,∥有图区域的宽度 / y Visible为 FALSE时,表示y方向已经移出了可显示的范围 if( yoffset<=-bi bi Height y Visible=FALSE else if( yoffset<= DsYO=0,∥表示移动后,有图区域的左上角点的y坐标 DstY1= bi. biHeight+yOffset示移动后,有图区域的右下角点的y坐标 else if yOffset<bi. biHeight)( StyL=bi. biHeight else y Visible=FALSE SrcYo= DstYo- yOffset)应DstY0在原图中的y坐标 SrcY1= Styl- yOffset;应DstY1在原图中的y坐标 RectHeight=DsY1-DstY0;∥有图区域的高度 if( VIsible&& y Visible){/xy方向都没有完全移出可显示的范围 for(i=0;j< Rectheight: i++){∥拷贝每一行 pPr指向要拷贝的那一行的最左边的象素对应在原图中的位 ∥置。特别要注意的是,由于bmp是上下颠倒的,偏移是 ∥ Outsize- Line Bytes.(i+ SrcYo)+ Line Bytes)+SrcX0,而不是 ∥i+ SrcYo)+ Line bytes)+ SrcXO,你试着举个例子就明白了 lpPtr=(char*)Iplmg Data+(BufSize-Line Bytes- (i+SrcYO)*Line Bytes)+SrcX0; pTempPtr指向要拷贝的那一行的最左边的象素对应在新图中∥的位置。同样要注意上面∥ 的问题 IpTempPtr=(char )IpTemplmg Data+ BufSize-LineBytes-(i+Dst YO)*Line Bytes)+DstX0; ∥拷贝一行(宽度为 Rect width) memcpy(p TempPtr, IpPtr, RectWidthDstX1=bi.biWidth; } else xVisible=FALSE; SrcX0=DstX0-xOffset; //对应 DstX0 在原图中的 x 坐标 SrcX1=DstX1-xOffset; //对应 DstX1 在原图中的 x 坐标 RectWidth=DstX1-DstX0; //有图区域的宽度 //yVisible 为 FALSE 时,表示 y 方向已经移出了可显示的范围 yVisible=TRUE; if( yOffset<= -bi.biHeight ) yVisible=FALSE; else if( yOffset<=0){ DstY0=0; //表示移动后,有图区域的左上角点的 y 坐标 DstY1=bi.biHeight+yOffset; //表示移动后,有图区域的右下角点的 y 坐标 } else if ( yOffset<bi.biHeight){ DstY0=yOffset; DstY1=bi.biHeight; } else yVisible=FALSE; SrcY0=DstY0-yOffset; //对应 DstY0 在原图中的 y 坐标 SrcY1=DstY1-yOffset; //对应 DstY1 在原图中的 y 坐标 RectHeight=DstY1-DstY0; //有图区域的高度 if( xVisible && yVisible){ //x,y 方向都没有完全移出可显示的范围 for(i=0;i<RectHeight;i++){ //拷贝每一行 //lpPtr 指向要拷贝的那一行的最左边的象素对应在原图中的位 //置。特别要注意的是,由于.bmp 是上下颠倒的,偏移是 //(BufSize-LineBytes-(i+SrcY0)*LineBytes)+SrcX0,而不是 //(i+SrcY0)*LineBytes)+SrcX0,你试着举个例子就明白了。 lpPtr=(char*)lpImgData+(BufSize-LineBytes- (i+SrcY0)*LineBytes)+SrcX0; //lpTempPtr 指向要拷贝的那一行的最左边的象素对应在新图中//的位置。同样要注意上面// 的问题。 lpTempPtr=(char*)lpTempImgData+ (BufSize-LineBytes-(i+DstY0)*LineBytes)+DstX0; //拷贝一行(宽度为 RectWidth) memcpy(lpTempPtr,lpPtr,RectWidth);
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有