SilverLight中
1.添加图片并转换成byte[]数组
using System.IO;
using System.Linq;
using System.Windows.Media.Imaging;
public void Browse_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "图片|*.jpg;*.png;*.gif;*.bmp;*.jpeg";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
string filename = dlg.File.Name;
ImgText = filename;
using (FileStream textStream = dlg.File.OpenRead())
{
//创建字节流数组
byte[] bytes = new byte[textStream.Length];
//读取相关数据
textStream.Read(bytes, 0, Convert.ToInt32(textStream.Length));
Img = bytes;
}
}
}
2.将byte[]数据转换成图片 在image控件中显示出来
public void getImage(byte[] img)
{
Stream ms = new MemoryStream(img);
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(ms);
ImgSource = bitmap;
}
WPF中
//添加图片转换为byte[]
public void Browse_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.Filter = "图片|*.jpg;*.png;*.gif;*.bmp;*.jpeg";
dlg.Multiselect = false;
if (dlg.ShowDialog() == true)
{
string filename = dlg.FileName;
ImgText = filename;
using (Stream textStream = dlg.OpenFile())
{
//创建字节流数组
byte[] bytes = new byte[textStream.Length];
//读取相关数据
textStream.Read(bytes, 0, Convert.ToInt32(textStream.Length));
Dug_Img = bytes;
}
}
}
//image转换为byte[]
public void showImg(object sender, RoutedEventArgs e, object view)
{
try
{
ProjectTestProperty dug = (ProjectTestProperty)view;
byte[] img = dug.Dug_Img;
if (img != null)
{
MemoryStream stream = new MemoryStream(img);
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = stream;
image.EndInit();
Project.SourceImg = image;
ImgSource = Project.SourceImg;
WinDow.ImageWindow = new Views.ProjectManagement.BugView.ImageView();
WinDow.ImageWindow.Show();
}
}
catch
{
MessageBox.Show("打开图片失败", "Error");
return;
}
}