⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 关于图像处理的源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
                {
                    rr = 0; gg = 0; bb = 0;
                    c = box.GetPixel(i, j);
                    r1 = c.R;
                    g1 = c.G;
                    b1 = c.B;
                    cc = box.GetPixel(i + 1, j + 1);
                    r2 = cc.R;
                    g2 = cc.G;
                    b2 = cc.B;
                    rr = Math.Abs(r2 - r1 + 128);
                    gg = Math.Abs(b2 - b1 + 128);
                    bb = Math.Abs(b2 - b1 + 128);

                    if (rr < 0) rr = 0;
                    if (rr > 255) rr = 255;
                    if (gg < 0) gg = 0;
                    if (gg > 255) gg = 255;
                    if (bb < 0) bb = 0;
                    if (bb > 255) bb = 255;
                    Color c1 = Color.FromArgb(rr, gg, bb);
                    box.SetPixel(i, j, c1);
                }
                progressBar1.Maximum = this.pictureBox1.Image.Width - 1;
                progressBar1.Value = i;
                pictureBox2.Refresh();
                pictureBox2.Image = box;
            }
            this.progressBar1.Hide();
        }

        private void 反色ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.progressBar1.Visible = true;
            Color c = new Color();
            this.box = new Bitmap(pictureBox1.Image);
            int rr, gg, bb;
            for (int i = 0; i < pictureBox1.Image.Width; i++)
            {
                for (int j = 0; j < pictureBox1.Image.Height; j++)
                {
                    c = box.GetPixel(i, j);
                    rr = c.B; gg = c.G; bb = c.B;
                    Color c1 = Color.FromArgb(255 - c.R, 255 - c.G, 255 - c.B);
                    box.SetPixel(i, j, c1);
                }
                progressBar1.Maximum = pictureBox1.Image.Width;
                progressBar1.Value = i;
                pictureBox2.Refresh();
                pictureBox2.Image = box;
            }
            this.progressBar1.Hide();
        }

        private void 平移ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            progressBar1.Visible = true;
            int dx;
            int dy;
            Color c = new Color();
            box = new Bitmap(pictureBox1.Image);
            Bitmap map = new Bitmap(box.Width,box.Height);
            int rr, gg, bb;
            int[,,] pic=new int[box.Width,box.Height,3];
            Form2 Fm = new Form2();
            if (Fm.ShowDialog() == DialogResult.OK)
            {
                dx = Fm.get_X;
                dy = Fm.get_Y;
                for (int i = 0; i < box.Width; i++)
                {
                    for (int j = 0; j < box.Height; j++)
                    {
                        c = box.GetPixel(i, j);
                        pic[i, j, 0] = c.R;
                        pic[i, j, 1] = c.G;
                        pic[i, j, 2] = c.B;
                    }
                }
                for (int i = 0; i < box.Width - dx; i++)
                {
                    for (int j = 0; j < box.Height - dy; j++)
                    {
                        rr = pic[i, j, 0];
                        gg = pic[i, j, 1];
                        bb = pic[i, j, 2];
                        Color c1 = Color.FromArgb(rr, gg, bb);
                        map.SetPixel(i + dx, j + dy, c1);
                    }
                    progressBar1.Maximum = box.Width - dx;
                    progressBar1.Value = i;
                    pictureBox2.Refresh();
                    pictureBox2.Width = map.Width;
                    pictureBox2.Height = map.Height;
                    pictureBox2.Image = map;

                }
                progressBar1.Hide();
            }
        }

        private void 缩放ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            progressBar1.Visible = true;
            progressBar1.Refresh();
            pictureBox1.Refresh();
            Color c = new Color();
            Color cc = new Color();
            int r1, g1, b1,fx,fy;
            Form3 Fm=new Form3();
            pictureBox1.SizeMode = PictureBoxSizeMode.Normal;
            if (Fm.ShowDialog() == DialogResult.OK)
            {
                
                box = new Bitmap(pictureBox1.Image);
                fx = Fm.get_x > 0 ? Fm.get_x : 1;
                fy = Fm.get_y > 0 ? Fm.get_y : 1;
                
                Bitmap map = new Bitmap(box.Width/fx, box.Height/fy);
                for (int i = 0; i < box.Width - 1; i++)
                {
                    for (int j = 0; j < box.Height - 1; j++)
                    {
                        c = box.GetPixel(i, j);
                        r1 = c.R;
                        g1 = c.G;
                        b1 = c.B;
                        Color c1 = Color.FromArgb(r1, g1, b1);
                        map.SetPixel(i / fx, j / fy, c1);


                    }
                    progressBar1.Maximum = box.Width - 1;
                    progressBar1.Value = i;
                    pictureBox2.Refresh();
                    pictureBox2.Width = box.Width / fx;
                    pictureBox2.Height = box.Height / fy;
                    pictureBox2.Image = map; 
                }        
            }
            else
            {
                pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
                box = new Bitmap(pictureBox1.Image);
                fx = Fm.get_x > 0 ? Fm.get_x : 1;
                fy = Fm.get_y > 0 ? Fm.get_y : 1;
                Bitmap map = new Bitmap(box.Width * fx, box.Height * fy);
                for (int i = 0; i < box.Width - 1; i++)
                {
                    for (int j = 0; j < box.Height - 1; j++)
                    {
                        c = box.GetPixel(i, j);
                        r1 = c.R;
                        g1 = c.G;
                        b1 = c.B;
                        Color c1 = Color.FromArgb(r1, g1, b1);
                        for (int k = 0; k < fx; k++)
                        {
                            for (int m = 0; m < fy; m++)
                            {
                                map.SetPixel(i * fx + k, j * fy + m, c1);
                            }
                        }
                    }
                    progressBar1.Maximum = box.Width - 1;
                    progressBar1.Value = i;
                    pictureBox2.Refresh();
                    pictureBox2.Width = box.Width * fx;
                    pictureBox2.Height = box.Height * fx;
                    pictureBox2.Image = map;
                }
            }
            progressBar1.Hide();
        }

        private void 轴对称ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pictureBox1.Visible = true;
            Color c = new Color();
            box = new Bitmap(pictureBox1.Image);
            Bitmap map = new Bitmap(box.Width,box.Width);
            int rr, gg, bb;
            int[ , , ]pic = new int[box.Width, box.Height, 3];
            for (int i = 0; i < box.Width ; i++)
            {
                for (int j = 0; j < box.Height; j++)
                {
                    c = box.GetPixel(i,j);
                    pic[i, j, 0] = c.R;
                    pic[i, j, 1] = c.G;
                    pic[i, j, 2] = c.B;
                }
            }
            for (int i = 0; i < box.Width ; i++)
            {
                for (int j = 0; j < box.Height ; j++)
                {
                    rr = pic[i, j, 0];
                    gg = pic[i, j, 1];
                    bb = pic[i, j, 2];
                    Color c1 = Color.FromArgb(rr, gg, bb);
                    map.SetPixel(box.Width-1-i , j , c1);
                }
                progressBar1.Maximum = box.Width ;
                progressBar1.Value = i;
                pictureBox2.Refresh();
                pictureBox2.Image = map;
            }
            progressBar1.Hide();
        }

        private void 关于我们ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("欢迎使用!本系统制作于2008年7月1日17:34:18");
        }


    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -