将字节图片保存在sqldatabase上 [英] save byte picture on sqldatabase
问题描述
HI
我不能很好地写英语
我在C#中使用此代码在数据库中保存图片
///////////////////////////
HI
i can not write English very well sorry
me in c# for save a picture in data base use of this code
//////////////////////////////////////////
try
{
MemoryStream ms = new MemoryStream();
pictureBox3.Image.Save(ms, pictureBox3.Image.RawFormat);
byte[] arrImage = ms.GetBuffer();
ms.Close();
string strSQL = "insert into picture(pic,IDcustomer) values (@pic,@IDcustomer)"; ;
SqlCommand cmd = new SqlCommand(strSQL, conn);
cmd.Parameters.Add(new SqlParameter("@pic", SqlDbType.Binary)).Value = arrImage;//picture
cmd.Parameters.AddWithValue("@IDcustomer", Convert.ToInt16(a));
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("Insert completed seccessfully.");
}
///////////////////////////////////
如果我想将图片加载到pictureBox,请使用以下代码:
/
//////////////////////////////////////////////////////
/////////////////////////////////////
and if i want to load a picture to pictureBox use of this code:
/
///////////////////////////////////////////////////
try
{
//Get image data from gridview column.
byte[] imageData = (byte[])image;
//Initialize image variable
newImage = null;
//Read image data into a memory stream
using (MemoryStream ms = new MemoryStream(imageData, 0, imageData.Length))
{
ms.Write(imageData, 0, imageData.Length);
//Set image variable value using memory stream.
newImage = Image.FromStream(ms, true);
}
//set picture
pictureBox1.Image = newImage;
// System.IO.File.Create("d:\\");
}
///////////////////////////////////
如果我要将加载图片保存到驱动器,请使用以下代码:
/////////////////////////////////////////////////
if i want to save a load picture to a drive use this code :
newImage.Save(@"D:\soft1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
但是这段代码有运行时错误
错误是
GDI +中发生一般错误
:confused :: ~~:omg::((
请帮助我
but this code have run time error
error is
A generic error occurred in GDI+
:confused::~ :omg: :((
please help me
推荐答案
1.创建一个System.IO.MemoryStream对象.
2.创建一个System.IO.FileStream对象
3.将图像保存到MemoryStream
4.从MemoryStream读取bytes []
5.使用FileStream保存图像文件
这是C#示例代码;
1. Create a System.IO.MemoryStream object.
2. Create a System.IO.FileStream object
3. Save image into MemoryStream
4. Read bytes[] from the MemoryStream
5. Save the image file with FileStream
And Here is the C# sample code;
using System.Drawing.Imaging;
using System.Drawing;
using System.IO;
public static void SaveJpeg
(string path, Image img, int quality)
{
EncoderParameter qualityParam
= new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
ImageCodecInfo jpegCodec
= GetEncoderInfo(@"image/jpeg");
EncoderParameters encoderParams
= new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
System.IO.MemoryStream mss = new System.IO.MemoryStream();
System.IO.FileStream fs
= new System.IO.FileStream(path, System.IO.FileMode.Create
, System.IO.FileAccess.ReadWrite);
img.Save(mss, jpegCodec, encoderParams);
byte[] matriz = mss.ToArray();
fs.Write(matriz, 0, matriz.Length);
mss.Close();
fs.Close();
}
在这里,请尝试这个男人.
C#GDI +解决方案中发生了一般性错误 [ ^ ]
Here you go, try this man.
C# a generic error occurred in GDI+ Solution[^]
我可以使用此
感谢您的帮助
MemoryStream ms =
新的MemoryStream((byte [])dataGridView1 ["pic",e.RowIndex] .Value);
图片img = Image.FromStream(ms,true);
pictureBox1.Image = img;
img.Save("D:\\ soft1.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
i can to use this
thanks of your help
MemoryStream ms=
new MemoryStream((byte[])dataGridView1["pic", e.RowIndex].Value);
Image img = Image.FromStream(ms,true);
pictureBox1.Image = img;
img.Save("D:\\soft1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
这篇关于将字节图片保存在sqldatabase上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!