使用 iplRotate 我得到的图片丢失了左右部分。为什么?

Use iplRotate the picture what I get is losing the part of left and right .why?

代码是为两个 :imageSo 和 imageDe 创建 CreateImageHeader, 然后通过 scanline 对 imagedata 进行估值, 然后按判断角度旋转, 然后通过图像数据值扫描线,

我把主要的代码如我所说的放在后面,希望有人能给我建议或思考。

创建:

imageSo = CreateImageHeader(bmp->PixelFormat, bmp->Width,bmp->Height);  
imageDe = CreateImageHeader(bmp->PixelFormat, bmp->Width,bmp->Height);  

班次:

bit1=(BYTE*) bmp->ScanLine[hSrc-1];  
bit2=imageSo->imageData;  
for(int i=0;i < hSrc;i++)    
{  
    memcpy(bit2,bit1,cpy);  
    bit1+=wBmp;  
    bit2+=wIpl;  
}  

旋转:

if(param.Angle){  

double xshift=0;  

double yshift=0;  

iiplGetRotateShift(bmp->Width/2,bmp->Height/2,BmpProperty.Angle,&xshift,&yshift);    

iiplRotate(imageSo,imageDe,BmpProperty.Angle,xshift,yshift,IPL_INTER_CUBIC|IPL_SMOOTH_EDGE);  
}  

shift2:

bit1=(BYTE*) bmp->ScanLine[hSrc-1];  
bit2=imageSo->imageData;  
for(int i=0;i < hSrc;i++)   
{  
    memcpy(bit1,bit2,cpy);  
    bit1+=wBmp;  
    bit2+=wIpl;  
}   

我现在知道原因了,因为旋转后,canvas也在旋转,所以我把canvas设置为正方形,原来是长方形before.also理解图片canvas的立场也会有所帮助。

这里是介绍 canvas 旋转细节的网站。 enter link description here