Изменение разрешения изображения в C#

В этом примере показано, как изменить разрешение изображения. Это еще один пример, который я создал для написания книг. Обычно компьютеры работают с изображениями с разрешением 96 пикселей на дюйм (PPI). Принтеры и издатели часто требуют изображений с более высоким разрешением, таких как 300 точек на дюйм (DPI). В этом примере показано, как преобразовать изображение из одного разрешения в другое. В то время как я был на нем, я также решил, чтобы программа изменила размер изображения, если вы хотите это сделать.

Когда вы вызываете команду Open меню File, выполняется следующий код.

private void mnuFileOpen_Click(object sender, EventArgs e)
{
    if (ofdOriginal.ShowDialog() == DialogResult.OK)
    {
        OriginalBitmap = new Bitmap(ofdOriginal.FileName);
        pictureBox1.Image = OriginalBitmap;
        using (Graphics gr = Graphics.FromImage(OriginalBitmap))
        {
            txtDpiX.Text = gr.DpiX.ToString();
            txtDpiY.Text = gr.DpiY.ToString();
        }
        txtWidth.Text = OriginalBitmap.Width.ToString();
        txtHeight.Text = OriginalBitmap.Height.ToString();
        mnuFileSaveAs.Enabled = true;
    }
}

Этот код отображает диалоговое окно «Открыть файл», чтобы вы могли выбрать файл изображения. Если вы выберете файл и нажмите «Открыть», программа загрузит файл в растровое изображение. Он создает объект Graphics, связанный с растровым изображением, и использует его свойства DpiX и DpiY для отображения разрешения исходного изображения. Он также отображает растровое изображение Width и Height.

Чтобы изменить разрешение или размеры изображения, просто введите текстовые поля. Затем, когда вы вызываете команду «Сохранить как» меню «Файл», выполняется следующий код.

private void mnuFileSaveAs_Click(object sender, EventArgs e)
{
    if (sfdNew.ShowDialog() == DialogResult.OK)
    {
        int old_wid = OriginalBitmap.Width;
        int old_hgt = OriginalBitmap.Height;
        int new_wid = int.Parse(txtWidth.Text);
        int new_hgt = int.Parse(txtHeight.Text);

        using (Bitmap bm = new Bitmap(new_wid, new_hgt))
        {
            Point[] points =
            {
                new Point(0, 0),
                new Point(new_wid, 0),
                new Point(0, new_hgt),
            };
            using (Graphics gr = Graphics.FromImage(bm))
            {
                gr.DrawImage(OriginalBitmap, points);
            }
            float dpix = float.Parse(txtDpiX.Text);
            float dpiy = float.Parse(txtDpiY.Text);
            bm.SetResolution(dpix, dpiy);
            SaveImage(bm, sfdNew.FileName);
            SystemSounds.Beep.Play();
        }
    }
}

В этом коде отображается диалоговое окно «Сохранить файл». Если вы выберете файл и нажмите «Сохранить», код читает новые значения в текстовых окнах. Затем он создает растровое изображение, которое имеет новые размеры. Он создает связанный объект Graphics и использует его метод SetResolution для установки разрешения нового растрового изображения. Наконец, метод сохраняет новое растровое изображение.

Источник: http://csharphelper.com/blog/2017/09/change-image-resolution-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector