Как сохранить изображение с PictureBox

255
09 мая 2017, 02:21

Хочу сохранить изображение с PictureBox, но постоянно сохраняется только чёрное изображение или вылетает ошибка. Подскажите в чём проблема.

    Color CurrentColor = Color.Green;
    bool isPresed = false;
    Point CurrentPoint;
    Point PrePoint;
    Graphics g;
public Form1()
    {
        InitializeComponent();
        g = pictureBox1.CreateGraphics();
    }
   private void button1_Click(object sender, EventArgs e)
   {
        pictureBox1.Save("test.jpg", ImageFormat.Jpeg);
   }
   private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        isPresed = true;
        CurrentPoint = e.Location;
    }
   private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (isPresed)
        {
            PrePoint = CurrentPoint;
            CurrentPoint = e.Location;
            for_paint();
        }
    }
    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        isPresed = false;
    }
    private void for_paint()
    {
            Pen p = new Pen(CurrentColor);
            g.DrawLine(p, PrePoint, CurrentPoint);
    }
Answer 1

Приведённый код рисует на графиксе пикчабокса. Естественно, Image остаётся пустым.

Нужно создать графикс у Image и использовать его. Предварительно, нужно создать картинку нужного размера.

// эту строку удаляем
//g = pictureBox1.CreateGraphics();
var bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.Image = bitmap;
g = Graphics.FromImage(bitmap);

Ещё нужно обновлять PictureBox, чтобы внесённые в Image изменения отобразились:

private void for_paint()
{
    Pen p = new Pen(CurrentColor);
    g.DrawLine(p, PrePoint, CurrentPoint);
    pictureBox1.Invalidate(); // <--
}
Answer 2

Пишу по памяти не проверяя код. Попробуй так:

pictureBox1.Image.Save("test.jpg", ImageFormat.Jpeg);
READ ALSO
Категории через tv объекты ModxRevo

Категории через tv объекты ModxRevo

Добрый день, на сайте есть каталог, разбитый на категории с помощью папокНо каждый товар в каждой категории относится к конкретному типу

218
VK API прерывистая работа

VK API прерывистая работа

Есть бот для группы вконтакте, он отправляет сообщение пользователям когда они выходят или входят в группу, а так же пара простых командСитуация...

303
Не заходит в php скрипт!

Не заходит в php скрипт!

При нажатии на странички кнопки "отправить" запускается скрипт, но первый оператор после <?php уже не выполняется , например <?php echo "OK";, ничего...

248
повышенное потребление памяти composer

повышенное потребление памяти composer

При запуске composer --profile update, сам composer показывает, что потребляет не много памяти ([1381MB/207

380