c# form求一个图像旋转90°的算法

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:09:03
Bitmap newpic;
Bitmap oldpic;

for (int y = 1; y < oldpic.Height; y++)
{
for (int x = 1; x < oldpic.Width; x++)
{
newColor = oldpic.GetPixel(oldpic.Width - x , x);
newpic.SetPixel(x, y, newColor);
}
picShow.Image = newpic;

这样貌似不行~!请高手指点
我要的是算法,
对于像素点的规则变化的啊

这么写就行了,不过GetPixel,SetPixel这种算法很耗时,建议你还是用指针

//顺时针
private void button1_Click(object sender, EventArgs e)
{
Bitmap bitmap1 = (Bitmap)pictureBox2.Image;
Bitmap bitmap2 = new Bitmap(pictureBox2.Height, pictureBox2.Width);
for (int i = 0; i < bitmap1.Width; i++)
{
for (int j = 0; j < bitmap1.Height; j++)
{
Color color = bitmap1.GetPixel(i, j);
bitmap2.SetPixel(bitmap2.Width - j - 1, bitmap2.Height - i - 1, color);
}
}
pictureBox3.Image = bitmap2;
}
//逆时针
private void button2_Click(object sender, EventArgs e)
{
Bitmap bitmap1 = (Bitmap)pictureBox2.Image;
Bitmap bitmap2 = new Bitmap(pictureBox2.Height, pictureBox2.Width);
for (