理论部分不做阐述,直接看代码
typedef struct imginfo{
int width;
int height;
unsigned char* img;
} imginfo;
int imshift(const imginfo img,unsigned char *res,int x_offset,int y_offset){
int i,j;
unsigned char arr[img.height*img.width];
memcpy(arr,img.img,sizeof(arr));
memset(res,0,sizeof(arr));
int width=img.width;
int height=img.height;
int res_width=width+x_offset;
int res_height=height+y_offset;
for(i=0;i< width;i++){
for(j=0;j< height;j++){
res_width=i+x_offset;
res_height=j+y_offset;
if( res_width<width&&res_height<height){
*(res+ res_width+ res_height*width)=*(arr+i+j*width);
}else{
*(res+i+ j*width )=0;
}
}
}
int step=0;
return 0;
}