сохранение jpg в наилучшем качестве C#

266
31 марта 2017, 21:58

Добрый день. Имеется код, объединяющий два изображения в одно:

Bitmap bmp1 = new Bitmap("iphone.jpg");
        OpenFileDialog dialog = new OpenFileDialog();
        if (dialog.ShowDialog() == DialogResult.OK)
        {

            int bmp1_width = bmp1.Width;
            int bmp1_height = bmp1.Height;
            Bitmap bmp2 = new Bitmap(dialog.FileName);
            Bitmap final_bmp = new Bitmap(bmp1_width, bmp1_height);
            pictureBox1.Image = final_bmp;
            Graphics g = Graphics.FromImage(final_bmp);
            g.DrawImage(bmp1, 0, 0, bmp1_width, bmp1_height);
            g.DrawImage(bmp2, 24, 103, 242, 342);
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            g.Dispose();
            pictureBox1.Invalidate();
            final_bmp.Save("D:\\output1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
        }

Можно ли как-то гарантировано сохранить это обобщенное изображение, чтобы в итоге оно имело максимально возможное качество?

Если присмотреться, то вы сами можете увидеть, что отображаются всякие квадратики и тому подобное. В оригинальном изображении такого нет.

Answer 1
using (Bitmap bmp1 = new Bitmap(@"C:\TestPhoto.jpg"))  
{  
    ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);  
    myEncoderParameter = new EncoderParameter(myEncoder, 0L);//вот этот 0L можешь заменить на 100L - это измениние уровня компрессии
    myEncoderParameters.Param[0] = myEncoderParameter; 
    bmp1.Save(@"C:\TestPhotoQualityZero.jpg", jpgEncoder, myEncoderParameters);  
}

А лучше сохраняй в .png

READ ALSO
WindowState = FormWindowState.Maximized;

WindowState = FormWindowState.Maximized;

Приложение написано с использованием WinFormsПри установке свойства:

328
PictureBox не отображает изображение visual c#

PictureBox не отображает изображение visual c#

Я новичок в c#, пишу небольшую игруЕё цель ставить звездочки так, чтобы их задело рандомно перемещающееся НЛО

335
Реализация универсальных методов

Реализация универсальных методов

C# WindowsForms Что-то запутался в универсальных методах и пр

245
Закрывается канал named pipes

Закрывается канал named pipes

Доброго дняЗадача вкратце в следующем: существует некий сервер (NamedPipeServerStream), который принимает входящие подключения клиентов (NamedPipeClientStream),...

373