Страница: 1 | 2 |
Вопрос: Сохранить содержимое PictureBox в файл.
Добавлено: 04.01.09 03:29
Автор вопроса: Памидорко | Web-сайт:
Казалось бы просто, но почему не получается?
что не так?
Посмотрел в поиске все, что связано с сохранением картинок. Ничего не получилось...
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
PictureBox1.CreateGraphics.DrawLine(Pens.Black, 0, 0, 50, 50)
PictureBox1.Image.Save("c:\temp.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
Ответы
Всего ответов: 29
Номер ответа: 1
Автор ответа:
Памидорко
ICQ: -
Вопросов: 5
Ответов: 17
Web-сайт:
Профиль | | #1
Добавлено: 04.01.09 03:39
VB 2005 Express Edition
Номер ответа: 2
Автор ответа:
Фeнягz
Вопросов: 2
Ответов: 62
Web-сайт:
Профиль | | #2
Добавлено: 04.01.09 04:09
Номер ответа: 3
Автор ответа:
Памидорко
ICQ: -
Вопросов: 5
Ответов: 17
Web-сайт:
Профиль | | #3
Добавлено: 04.01.09 04:27
спасибо! все работает...
и еще вопрос... после того, как поверх окна с работающей программой перетащишь любое окно все Graphics в пикчурбоксе исчезают... как сделать, чтобы они не исчезали??? refresh????
Номер ответа: 4
Автор ответа:
Фeнягz
Вопросов: 2
Ответов: 62
Web-сайт:
Профиль | | #4
Добавлено: 04.01.09 06:42
Тогда организуй всю прорисовку в процедуре Paint.
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 04.01.09 11:34
ЯЯЯ, а нафига эти извращения с API в данном случае???
Номер ответа: 6
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #6
Добавлено: 04.01.09 11:37
у него в коде банальная ошибка потому и не работает.. а API тут по какой фиг?
Номер ответа: 7
Автор ответа:
Памидорко
ICQ: -
Вопросов: 5
Ответов: 17
Web-сайт:
Профиль | | #7
Добавлено: 04.01.09 13:46
скажите мне, какая у меня там банальная ошибка.
Номер ответа: 8
Автор ответа:
Памидорко
ICQ: -
Вопросов: 5
Ответов: 17
Web-сайт:
Профиль | | #8
Добавлено: 04.01.09 13:56
а еще лучше, как выглядит код без ошибки
Номер ответа: 9
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #9
Добавлено: 04.01.09 14:36
ты рисуешь на PictureBox1, а сохраняешь PictureBox1.Image - это два разных контекста! На чем рисуешь то и сохраняй!
С#
private void button1_Click(object sender, EventArgs e)
{
//' Это на тот случай если в pictureBox1 нет картинки
if (pictureBox1.Image == null)
{
//' создаем новую по размерам pictureBox1
Bitmap bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
//' делаем ее видимой
pictureBox1.Image = bitmap;
}
//' Создаем объект Graphics для картинки чтоб можно
//' было на ней рисовать.
using (Graphics graphics = Graphics.FromImage(pictureBox1.Image))
{
//' заливаем фон
graphics.Clear(Color.Black);
//' рисуем(пишем) какую нибудь фигню
graphics.DrawString("Малевич: \"Черный квадрат\"",
this.Font,
Brushes.White,
graphics.VisibleClipBounds);
}
//' ну и сохраняем наше творчество для потомков
pictureBox1.Image.Save(@"c:\temp.jpg", ImageFormat.Jpeg);
}
вот как то так ...
Номер ответа: 10
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #10
Добавлено: 04.01.09 14:38
сорри.. с тегами чего то напутал
Номер ответа: 11
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #11
Добавлено: 04.01.09 14:47
либо рисовать на картинке, как я показал выше. Либо переопределять процедуру OnPaint и все рисовать там (как уже говорил ЯЯЯ)
Номер ответа: 12
Автор ответа:
Памидорко
ICQ: -
Вопросов: 5
Ответов: 17
Web-сайт:
Профиль | | #12
Добавлено: 04.01.09 15:08
огромное спасибо!
почему вот только в школе такому не учат?
Номер ответа: 13
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #13
Добавлено: 04.01.09 15:15
а тебе что, школьных предметов мало?
Номер ответа: 14
Автор ответа:
Памидорко
ICQ: -
Вопросов: 5
Ответов: 17
Web-сайт:
Профиль | | #14
Добавлено: 04.01.09 20:04
на C# все работает...
пришлось переписать так:
а вот с VB проблемы....
не получилось перевести эту строчку на VB2005
предметы предметами, а курсач писать надо...
Номер ответа: 15
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #15
Добавлено: 04.01.09 20:56
Просто тебе надо было в самом верху добавить директиву Imports System.Drawing.Imaging
точно не помню, а Vb нету под рукой.. но наверное как то так