菜單項
|
子項
|
其餘屬性
|
圖片(&P)
|
打開圖片(&O)
|
快捷鍵等其餘屬性根據本身設計定(下同)
|
複製圖片(&C)
|
|
|
關閉(&Q)
|
|
|
///======================================代碼編輯===========================================
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
System.IO;
namespace
FileOptionApplication
{
public partial class Form12 : Form
{
public Form12()
{
InitializeComponent();
}
/// <summary>
/*******************************************************
**方 法 名:GetFileBytes
**輸 入參數:Filename:文件名稱;
**輸 出參數:比特流類型
**返 回 值:byte[]二進制流
**創 建 人:錢哨
**創 建日期:
**描 述:將讀取的文件轉化成爲二進制流。
*******************************************************/
/// <summary>
/// </summary>
/// <param name="Filename">打開的圖片具體路徑及文件名稱</param>
/// <returns>比特流類型</returns>
public byte[] GetFileBytes(string Filename)
{
if (Filename == "")
return null;
try
{
FileStream fileStream = new FileStream(Filename, FileMode.Open, FileAccess.Read);
BinaryReader binaryReader = new BinaryReader(fileStream);
byte[] fileBytes = binaryReader.ReadBytes((int)fileStream.Length);
binaryReader.Close();
fileStream.Close();
return fileBytes;
}
catch
{
return null;
}
}
/*******************************************************
**方 法 名:WriteFileBytes
**輸 入參數:TargetFilename:目標文件名稱;
**輸 出參數:布爾類型:是否寫成功
**返 回 值:byte[]二進制流
**創 建 人:錢哨
**創 建日期:
**描 述:將讀取的文件轉化成爲二進制流。
*******************************************************/
/// </summary>
/// <param name="TargetFilename">目標文件</param>
/// <param name="fileBytes">文件比特流</param>
/// <returns>布爾類型:是否寫成功</returns>
public bool WriteFileBytes(string TargetFilename, byte[] fileBytes)
{
bool k = true;
if (TargetFilename != "" && fileBytes.Length != 0)
{
try
{
FileStream fileStream = new FileStream(TargetFilename, FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter binaryWriter = new BinaryWriter(fileStream);
binaryWriter.Write(fileBytes);
binaryWriter.Flush();
binaryWriter.Close();
fileStream.Close();
}
catch
{
k = false;
}
}
else
{
k = false;
}
return k;
}
/// <summary>
/// 菜單:打開圖片
/// </summary>
private void toolStripMenuItem3_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog openfile = new OpenFileDialog();
openfile.Filter = "jpg類型圖片(*.jpg)|*.jpg|BMP類型圖片(*.bmp)|*.bmp";
if (openfile.ShowDialog() == DialogResult.OK)
{
byte[] picbinary = GetFileBytes(openfile.FileName);
//第一步:打開圖片文件,得到比特流
MemoryStream mempicstream = new MemoryStream(picbinary);
//第二步:將比特流還存在內存工做流中。
pictureBox1.Image = Image.FromStream(mempicstream);
//第三步:加載內存流到圖片控件
mempicstream.Dispose();
mempicstream.Close();
}
}
catch (Exception m)
{
MessageBox.Show("讀取圖片出錯,可能的問題是:"+Convert.ToString(m) ,"錯誤提示");
}
}
/// <summary>
/// 將打開的圖片進行復制
/// </summary>
private void toolStripMenuItem4_Click(object sender, EventArgs e)
{
try
{
if (pictureBox1.Image == null)
{
MessageBox.Show("禁止圖片爲空時候另存信息。", "錯誤提示");
}
else
{
saveFileDialog1.Filter = "jpg類型圖片(*.jpg)|*.jpg";
DialogResult result = saveFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
MemoryStream ms=new MemoryStream();
Bitmap bm = new Bitmap(pictureBox1.Image);
bm.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] bytes = ms.ToArray();
WriteFileBytes(saveFileDialog1.FileName, bytes);
MessageBox.Show("另存圖片成功", "提示");
ms.Dispose();
ms.Close();
bm.Dispose();
}
}
}
catch (Exception m)
{
MessageBox.Show("讀取圖片出錯,可能的問題是:" + Convert.ToString(m), "錯誤提示");
}
}
}
}
|