这是将图像保存到数据库的代码的一部分
Bitmap TempImage = new Bitmap(@cwd + "\\Final.jpg", true);
pictureBox.Image = new Bitmap(TempImage);//pictureBox.Image = Image.FromFile(imgName[0]);
TempImage.Dispose();
string name = textBox1.Text + ".jpg";
MemoryStream mstr = new MemoryStream();
pictureBox.Image.Save(mstr, pictureBox.Image.RawFormat);
byte[] arrImage = mstr.GetBuffer();
然后程序停在pictureBox.Image.Save(mstr, pictureBox.Image.RawFormat);
ArgumentNullException was unhandled, Value cannot be null.
Parameter name: encoder
会出什么问题?
答案 0 :(得分:4)
要拿一个WAG并说你不应该处理你可能会在以后搞乱的事情。
using( Bitmap TempImage = new Bitmap(@cwd + "\\Final.jpg", true))
{
pictureBox.Image = TempImage // why do => new Bitmap(TempImage); here?
string name = textBox1.Text + ".jpg";
MemoryStream mstr = new MemoryStream();
pictureBox.Image.Save(mstr, pictureBox.Image.RawFormat);
byte[] arrImage = mstr.GetBuffer();
}
// after this point, you'd better not be using pictureBox either!
另外,不确定为什么要创建两个位图...或者使用“pictureBox”来保存图像...坦率地说,我越看这个代码我就越尴尬。也许你应该问一个问题,如
我正在尝试foo图像,以便我可以禁止。我该怎么做?
并完全跳过这段代码。
答案 1 :(得分:1)
Save()的实现将调用您传入的格式的FindEncoder()作为第二个参数(pictureBox.Image.RawFormat),并返回null。
答案 2 :(得分:0)
只需使用
pictureBox1.Image =
Bitmap.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg");