c#如何把图片变二进制的数据,保存起来,写入文件中。?
4个回答
展开全部
//---path 图片的地址
FileStream fs = new FileStream(path, FileMode.Open);
// 使用文件流构造一个二进制读取器将基元数据读作二进制值
BinaryReader br = new BinaryReader(fs);
byte[] imageBuffer = new byte[br.BaseStream.Length];
br.Read(imageBuffer, 0, Convert.ToInt32(br.BaseStream.Length));
string textString = System.Convert.ToBase64String(imageBuffer);
fs.Close();
br.Close();
//------textString 就是二进制 图片的字符串了
FileStream fs = new FileStream(path, FileMode.Open);
// 使用文件流构造一个二进制读取器将基元数据读作二进制值
BinaryReader br = new BinaryReader(fs);
byte[] imageBuffer = new byte[br.BaseStream.Length];
br.Read(imageBuffer, 0, Convert.ToInt32(br.BaseStream.Length));
string textString = System.Convert.ToBase64String(imageBuffer);
fs.Close();
br.Close();
//------textString 就是二进制 图片的字符串了
展开全部
我刚好有研究过,等我晚上回去给你发过来
以下代码为个人原创,转载务必注明为 Lincal 所写
/// <summary>
/// 将图片读入内存,然后释放图片连接句柄,返回读入的图片或 null
/// </summary>
public static byte[] GetImageDataFromPath(string filePath)
{
try
{
Image.FromFile(filePath).Dispose();
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
int byteLength = (int)fs.Length;
byte[] fileData = new byte[byteLength];
fs.Read(fileData, 0, byteLength);
fs.Close();
return fileData;
}
catch
{
return null;
}
}
/// <summary>
/// 将图片读入内存,然后释放图片连接句柄,返回读入的图片或 null
/// </summary>
public static Image GetImageFromPath(string filePath)
{
Image image = null;
byte[] buff = GetImageDataFromPath(filePath);
if (buff != null)
image = Image.FromStream(new MemoryStream(buff));
return image;
}
以下代码为个人原创,转载务必注明为 Lincal 所写
/// <summary>
/// 将图片读入内存,然后释放图片连接句柄,返回读入的图片或 null
/// </summary>
public static byte[] GetImageDataFromPath(string filePath)
{
try
{
Image.FromFile(filePath).Dispose();
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
int byteLength = (int)fs.Length;
byte[] fileData = new byte[byteLength];
fs.Read(fileData, 0, byteLength);
fs.Close();
return fileData;
}
catch
{
return null;
}
}
/// <summary>
/// 将图片读入内存,然后释放图片连接句柄,返回读入的图片或 null
/// </summary>
public static Image GetImageFromPath(string filePath)
{
Image image = null;
byte[] buff = GetImageDataFromPath(filePath);
if (buff != null)
image = Image.FromStream(new MemoryStream(buff));
return image;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
画好的图形之所以消失,是因为每当对窗体进行操作的时候,都会触发系统消息,通知程序重画所有必要的窗体,具体的说,消息到达后,各个部件或控件自己画自己的,因为你画的图形不是属于控件本身onPaint()事件里,,所以画完之后,你画的图像就没了。所以,要想保持自绘的图形不会消失,只有自己把图形数据保存下来,并且在pictureBox的画图事件里把画图代码添上,比如private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
//画图代码
}
才能做到。至于数据怎么保存,看自己的,我一般保存在Arrylist里,方便,还支持自动增减,程序好编 。
想要代码的画,我qq583471261
{
//画图代码
}
才能做到。至于数据怎么保存,看自己的,我一般保存在Arrylist里,方便,还支持自动增减,程序好编 。
想要代码的画,我qq583471261
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
图片可以直接保存啊。
Image.Save("c:\\1.png", System.Drawing.Imaging.ImageFormat.Png);
Image.Save("c:\\1.png", System.Drawing.Imaging.ImageFormat.Png);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询