打开文件,并返回文件路径
public string OpenFile(string strFilter)
{
string strFileName = string.Empty;
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = strFilter;
openFile.FilterIndex = 1;
if (openFile.ShowDialog() == DialogResult.OK)
{
strFileName = openFile.FileName;
}
return strFileName;
}
导出图片
public void ExportPic(PictureBox picBox)
{
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.Filter = "图像文件(*.PNG)|*.PNG|所有文件(*.*)|*.*";
if (saveFile.ShowDialog() == DialogResult.OK)
{
string fileName = saveFile.FileName;
string strExtension = Path.GetExtension(fileName);
switch (strExtension)
{
case ".png":
picBox.Image.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
break;
case ".PNG":
picBox.Image.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
break;
case ".jpg":
picBox.Image.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case ".jpeg":
picBox.Image.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
default:
break;
}
}
}
将文件转换为二进制
public byte[] FileToBytes(string filePath)
{
FileInfo fileInfo = new FileInfo(filePath);
byte[] buffer = new byte[fileInfo.Length];
FileStream fs = fileInfo.OpenRead();
fs.Read(buffer, 0, Convert.ToInt32(fileInfo.Length));
fs.Close();
return buffer;
}
将给定二进制流写入一个新文件
public void CreateFile(byte[] fileBuffer,string newFilePath)
{
if (File.Exists(newFilePath))
{
File.Delete(newFilePath);
}
FileStream fs = new FileStream(newFilePath, FileMode.CreateNew);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(fileBuffer, 0, fileBuffer.Length);
bw.Close();
fs.Close();
}
字节转图像
public Image Bytes2Img(byte[] buffer)
{
MemoryStream ms = new MemoryStream(buffer);
ms.Position = 0;
Image img = Image.FromStream(ms);
ms.Close();
return img;
}
图片转字节
public byte[] Img2Bytes(Image img)
{
byte[] bytes = null;
MemoryStream ms = new MemoryStream();
img.Save(ms, ImageFormat.Png);
bytes = ms.GetBuffer();
ms.Close();
return bytes;
}
从图片文件路径转字节
public byte[] ImgFile2Bytes(string strPicFile)
{
if (string.IsNullOrEmpty(strPicFile)) return null;
byte[] bytes = null;
MemoryStream ms = new MemoryStream();
Image img = Image.FromFile(strPicFile);
img.Save(ms, ImageFormat.Png);
bytes = ms.GetBuffer();
ms.Close();
return bytes;
}