2017-08-15 11 views
0

コードは2のためCreateImageHeaderを作成している:、画像データによる値のスキャンライン、その後 、imageSoとimageDe、 その後、走査線によって値の画像データ、 は、裁判官の角度で回転させるiplRotateを使用すると、左と右の部分が失われます。

私は背後にあると言ったように、メインコードを表示します誰かが私に提案や考えを与えることを願っています。

作成:

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; 
} 
+0

いくつかのコードを共有できますか? –

+0

私のアプローチが間違っていると思って、写真を印刷して、黒い国境がまだここにあることを知った。サド...黒い国境についてもう一度考える必要がある。 – fading

答えて

0

私は回転後、キャンバスも回転していたので、キャンバスを前に長方形である四角形に設定しています。キャンバスの位置にある画像も役立つと理解しています。

ここでは、キャンバスの回転の詳細を紹介するウェブサイトです。 enter link description here

関連する問題