C# сохранить System.Drawing.Graphics в.png

Я попробовал с графикой.Save();

Graphics newImage = Graphics.FromImage(bmp2);
newImage.DrawImage(bmp, 87, 37, 0, 0);
newImage.Save();

но когда я пытаюсь установить имя файла, как в Image.Save(@"HereGoesName.PNG"); Метод я получаю сообщение об ошибке "Нет перегрузки для метода" Сохранить "принимает 1 аргумент)"

и везде, где я искал, говорит, чтобы сделать следующее

 Bitmap bitmap = new Bitmap(Convert.ToInt32(1024), Convert.ToInt32(1024), System.Drawing.Imaging.PixelFormat.Format32bppArgb);
 Graphics g = Graphics.FromImage(bitmap);
 bitmap.Save(@"HereGoesName.PNG", ImageFormat.Png);

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

2 ответа

Решение

Вам нужно позвонить Save на растровом изображении, а не на графике:

Graphics newImage = Graphics.FromImage(bmp2);
newImage.DrawImage(bmp, 87, 37, 0, 0);
bmp2.Save("HereGoesName.PNG", ImageFormat.Png);

Это просто: ваша линия Graphics newImage = Graphics.FromImage(bmp2); создает графический объект со ссылкой на bmp2 образ.

Все действия рисования рисовать прямо на вашем bmp2 Битовая карта

Таким образом, вы можете просто сохранить ваше измененное изображение с помощью:

bmp2.Save(@"foo.png", ImageFormat.Png);
Другие вопросы по тегам