Я пытаюсь повернуть растровое изображение по часовой стрелке на 90 градусов.Я попытался изменить ширину на высоту и высоту на ширину для информационного заголовка, поэтому, когда он зацикливается, он зацикливает высоту, а затем ширину, но не вращается, поэтому я предполагаю, что мне нужно поместить их в координаты X и Y изСекция байтового массива.Я застрял уже 3 дня, поэтому, если возможно, пожалуйста, помогите мне!Огромное спасибо.Пожалуйста, направьте меня через коды здесь, еще раз спасибо!
hfile = CreateFile(ofn.lpstrFile, GENERIC_READ, FILE_SHARE_READ, (LPSECURITY_ATTRIBUTES)NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL );
ReadFile(hfile, &bfh, sizeof(bfh), &written, NULL);
ReadFile(hfile, &bih, sizeof(bih), &written, NULL);
bmi.bmiHeader = bih;
int imagesize = bih.biHeight * bih.biWidth * 3; // Allocate necessary data for image
image = new BYTE[imagesize];
image1 = new BYTE[imagesize];
ReadFile(hfile, image, imagesize, &written, NULL);
SetDIBitsToDevice(hdc, 0, 0, bih.biWidth, bih.biHeight, 0, 0, 0,
bih.biHeight, image,&bmi,DIB_RGB_COLORS);
width = bih.biHeight;
height = bih.biWidth;
for(int x=0; x<height; x++)
{
for(int y=0; y<width; y++)
{
image1[(y*height+x)*3+0] = image[(y*height-1-x)*3+0];
image1[(y*height+x)*3+1] = image[(y*height-1-x)*3+1];
image1[(y*height+x)*3+2] = image[(y*height-1-x)*3+2];
}
}
SetDIBitsToDevice(hdc,height,0,width,height,0,0,0,bih.biHeight,image1,&bmi,DIB_RGB_COLORS);
width = bih.biHeight;
height = bih.biWidth;
ReleaseDC(hwnd, hdc);
return 0;
EndPaint(hWnd, &ps);
return 0;