我有一个图片框。用户可以在其上绘制不同的rectangles
,假设用户绘制的rectangles
超出了picturebox
的大小,我是否可以统一调整内容的大小以适应picturebox
,即使图像尚未保存?
我只能管理已加载的resize
内容和已保存的图像文件。我用来绘制rectangles
的代码如下:
gr.FillRectangle(Brushes.Black, 0, 0, 2, 75)
Rectangles
确实出现在picturebox
上。
此外,我无法使用以下代码保存:
PictureBox1.Image.Save("C:\test\myimage.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
我得到的错误是:
Object reference not set to an instance of an object.
答案 0 :(得分:1)
当我想用图片填充图片框而不保存到硬盘时我使用System.IO.MemoryStream
。
PictureBox1.Image = New System.Drawing.Bitmap(New IO.MemoryStream(New System.Net.WebClient().DownloadData("http://upload.wikimedia.org/wikipedia/commons/e/ec/Banksy.on.the.thekla.arp.jpg")))
答案 1 :(得分:0)
这可能是因为您的PictureBox没有分配“Image”对象。
您可以在此处找到解决方案(第一个答案):getting image from a picturebox
[另外,您可能会在以后遇到有关保存到根文件夹(C :)的问题。例如,尝试使用本地桌面上的文件夹以避免任何访问权限错误。]
修改强> 这取自上面的链接。在我看来,你还没有尝试过。
myPictureBox.Image = New Bitmap(myPictureBox.ClientSize.Width, _
myPictureBox.ClientSize.Height)
'Then, when you want to perform some drawing, use a Graphics object from the Image instead of the PictureBox:
Using g As Graphics = Graphics.FromImage(myPictureBox.Image)
' do the drawing '
End Using