如何通过裁剪的画面之间的形式在C#Winform应用程序?

0

的问题

我工作上的联系人管理的桌面应用程序在C#窗形式和我目前正在试图增加阿凡达图像剪裁的功能。 图像正在被传递一种形式到另一个没有任何问题。 然而,之后的图像剪裁是不正传回到登录的形式,无论我在做什么。 我试图改变的图片中登录的形式通过载有的构造和创建一个新的对象后剪切图像。 我收到这样的一个错误,但是:

系统。如:"参数必须积极和<的高度。 (Parameter'y')"

除发生在'彩色pxlColor'的线。

作物方法在裁剪的图像是创建:

        private void button_Crop_Image_Click(object sender, EventArgs e)
        {
            Cursor = Cursors.Default;
            Bitmap bitmap2 = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            pictureBox1.DrawToBitmap(bitmap2, pictureBox1.ClientRectangle);

            Bitmap croppedImage = new Bitmap(rectW, rectH);
            for (int x = 0; x < rectW; x++)
            {
                for (int y = 0; y < rectH; y++)
                {
                    Color pxlColor = bitmap2.GetPixel(cropX + x, cropY + y);
                    croppedImage.SetPixel(x, y, pxlColor);
                }
            }

            pictureBox2.Image = (Image)croppedImage;

            Login_Register_Form login = new Login_Register_Form(croppedImage);

            pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
        }

图像是被正确地显示在pictureBox2.图像的领域。 构造从登录的形式:

        public Login_Register_Form(Bitmap croppedImage)
        {
            this.croppedPicture = (Image)croppedImage;
            pictureBoxProfileImage.Image = this.croppedPicture;
        }

我已经做了一些研究在这个问题和找到出,上述错误可能是由于不同大小的图像的领域。 后使他们的大小相等,NullObjectReference发生在'pictureBoxProfileImage.像=这一点。croppedPicture;'的线。

系统。NullReferenceException:"对象参没有设置的一个实例,一个对象。"

我试图通过这两位图和图像变量,结果是类似的情况。 任何帮助将appraciated.

干杯, 菲利普

c# crop winforms
2021-11-13 13:02:55
1

最好的答案

0

我已经重新安排一些事情,现在这一切都正在致力于在一种形式。 裁剪图像正在取代原先发布一个,那就是正后通过以下方法:

    private void button_browse_Click(object sender, EventArgs e)
    {
        // select and display image in the picturebox
        OpenFileDialog opf = new OpenFileDialog();
        opf.Filter = "Select Image(*.jpg;*.png;*.gif)|*.jpg;*.png;*.gif";
        

        if(opf.ShowDialog() == DialogResult.OK)
        {
            pictureBoxProfileImage.Image = Image.FromFile(opf.FileName);
            setImage(pictureBoxProfileImage.Image);
        }
    }

问题是,在保存的图像在试图登记册使用以下功能:

pictureBoxProfileImage.Image.Save(picture, pictureBoxProfileImage.Image.RawFormat);

像是空的,尽管正在恰当地显示出来。 我应该替换的原始图像(复盖)以某种方式?

2021-11-13 18:55:35

任何想法,如何实现它@Steeeve?
Filip

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................