2009-09-09 5 views
0

Как я могу получить изображение, которое я нарисовал на картинке? в моем приложении я создал форму с рисованным рисунком. Но я не могу сохранить изображение, которое я нарисовал как файл, есть сообщение об ошибке, что «ссылка на объект не установлена ​​в экземпляр объекта». Я использую кодПолучение изображения из фотошопа

me.picturebox1.image.save(filename,sysytem.....jpeg) 

любой знает, пожалуйста, помогите мне ... спасибо

ответ

1

Там кажется, нет ничего зазорного с кодом (если проблема не с одним из параметров). PictureBox.Image.Save() делает работа!

Возможно, что PictureBox отображает изображение, но объект Image, на который он ссылается, уже удален. Вы можете избавиться от исходной ошибки объекта путем осуществления проверки на допустимость пустых первых:

If picturebox1.Image isnot Nothing Then 
    ... 
End If 

Кроме того, вы должны проверить код, который рисует изображение ... это выбрасывайте ссылок, как ожидалось?

0

Я пробовал аналогичную операцию.

pictureBox1.Image.Save("C:\\tempStack.jpg", ImageFormat.Jpeg); 

Причиной может быть то, что pictureBox1 (очень маловероятно) или pictureBox1.Image не установлен.

Использование

pictureBox1.Load("") 

, чтобы загрузить изображение, прежде чем пытаться сохранить его.

+0

Не установлено значение Ничто или ссылка Null. – Koekiebox

4

Я предполагаю, что вы никогда не назначаете Image свойство вашего PictureBox, но вместо этого выполняете команды рисования непосредственно на объекте Graphics, извлеченном из элемента управления PictureBox. Если это так, то свойство Image останется Nothing/null при выполнении чертежа. Чтобы обойти эту проблему, назначить пустое изображение на Image собственности при инициализации PictureBox управления:

myPictureBox.Image = New Bitmap(myPictureBox.ClientSize.Width, _ 
           myPictureBox.ClientSize.Height) 

Затем, когда вы хотите, чтобы выполнить некоторые рисунок, используйте Graphics объект из Image вместо PictureBox:

Using g As Graphics = Graphics.FromImage(myPictureBox.Image) 
    ' do the drawing ' 
End Using 

при таком подходе вы можете сохранить изображение, как вы в вашем текущем коде, просто вызвав Save на PictureBox.Image объекта.

+0

спасибо за ваш ответ. Но, пожалуйста, скажите мне, где я могу разместить этот код – user85511

+0

@sinoydevassy: это действительно зависит от структуры вашего приложения, но если у вас есть точка кода, в которой вы инициализируете «новый рисунок», это быть местом для назначения нового пустого объекта «Bitmap». –

+0

поблагодарить u so much.it работает good.i инициализируется в форме load.thank you.but есть проблема. Цвет фона сохраненного изображения - это каждый раз, когда black.so я не могу видеть свое изображение, потому что мой цвет рисования также черный. Спасибо – user85511

Смежные вопросы