private: System::Void spinButton_Click(System::Object^ sender, System::EventArgs^ e) {
pictureBox1->Image = RotateImage(pictureBox1->Image, 15);
}
public: Image^ RotateImage(Image^ img, float rotationAngle)
{
//create an empty Bitmap image
Image^ bmp = Image::FromFile("rouletteWheel.png");
//turn the Bitmap into a Graphics object
Graphics^ gfx = Graphics::FromImage(bmp);
//now we set the rotation point to the center of our image
gfx->TranslateTransform((float)bmp->Width / 2, (float)bmp->Height / 2);
//now rotate the image
gfx->RotateTransform(rotationAngle);
gfx->TranslateTransform(-(float)bmp->Width / 2, -(float)bmp->Height / 2);
//set the InterpolationMode to HighQualityBicubic so to ensure a high
//quality image once it is transformed to the specified size
gfx->InterpolationMode = System::Drawing::Drawing2D::InterpolationMode::HighQualityBicubic;
//now draw our new image onto the graphics object
gfx->DrawImage(img, 0, 0);
//dispose of our Graphics object
gfx->~Graphics();
//return the image
return bmp;
}
1条答案
按热度按时间nkkqxpd91#
答案(C#中的原始代码:Rotate picture in Winforms)+由于模糊和内存使用量增加,因此此时无用:
但有一个问题,经过几次旋转图像变得模糊.