未压缩的 24 位 .bmp 文件
给定旋转倍数 90,我需要旋转 .bmp 文件。例如,我有一张图像,我给定了 +90 或 -90 的旋转因子。我的图像将根据旋转因子向左或向右旋转 90 度。当文件的尺寸相等时,我的程序可以正常工作,这意味着高度和宽度相等,但是当我使用不是正方形的图像时,我会遇到 seg 错误。
这是我到目前为止的代码。
if(rotation == 90 || rotation == -270 )
{
/* 90 = -270 */
for(row = 0; row < rows; row++)
{
for(col = 0; col < cols; col++ )
{
PIXEL* o = original+ (row*cols) + col;
PIXEL* n = (*new)+((cols-col-1)*cols) + row;
*n = *o;
}
}
*newcols = cols;
*newrows = rows;
此方法的标头是:
int rotate(PIXEL* original, int rows, int cols, int rotation,
PIXEL** new, int* newrows, int* newcols)
其中 PIXEL* original 包含原始 .bmp 文件
通过调用读取 .bmp 文件的方法获得行和列
rotation = 是用户给定的旋转因子