原理参考:https://blog.csdn.net/liyuan02/article/details/6750828
实现对对任意角度的旋转,具体数学推导网上找。如果各位读者需要使用,只需要将打开文件的位置改为你的位置,输入不同的角度即可:
#include #include #include #include #define CV_PI 3.1415926
int main(){
FILE *fp = fopen("./01.bmp", "rb");
if (fp == 0){
printf("文件打开失败\n");
return 0;
}
BITMAPFILEHEADER fileHead;
BITMAPINFOHEADER infoHead;
fread(&fileHead, sizeof(BITMAPFILEHEADER), 1, fp);
fread(&infoHead, sizeof(BITMAPINFOHEADER), 1, fp);
int width = infoHead.biWidth;
int height = infoHead.biHeight;
int biCount = infoHead.biBitCount;
int lineByte = (width*biCount / 8 + 3) / 4 * 4;
RGBQUAD *pColorTable;
pColorTable = new RGBQUAD[256];
fread(pColorTable, sizeof(RGBQUAD), 256, fp);
unsigned char *pBmpBufSrc,*pBmpBufDst;
pBmpBufSrc = new unsigned char[lineByte*height];

该博客介绍了如何使用C语言实现对BMP图像进行任意角度旋转,包括读取文件、计算旋转后的坐标、创建新图像并保存。通过输入角度,程序可以处理不同角度的旋转,示例展示了旋转30度、45度、60度和90度的效果。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



