System.Drawing.Image具有易于使用的FromFile和ToFile方法。 Silverlight BitmapImage的等价物是什么?我试图加载并保存jpeg图像作为单元测试的一部分。字节必须与完全匹配才能通过。这是我目前的猜测:
//I am not sure this is right
private BitmapImage GetImage(string fileName)
{
BitmapImage bitmapImage = new System.Windows.Media.Imaging.BitmapImage();
using (Stream imageStreamSource = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
bitmapImage.BeginInit();
bitmapImage.StreamSource = imageStreamSource;
bitmapImage.EndInit();
}
return bitmapImage;
}
private void SaveImage(BitmapImage bitmapImage, string file)
{
//How to do this?
}
答案 0 :(得分:1)
从MSDN link,使用带有URI或
的ctor重载BitmapImage myBitmapImage = new BitmapImage();
// BitmapImage.UriSource must be in a BeginInit/EndInit block
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Water Lilies.jpg");
myBitmapImage.DecodePixelWidth = 200;
myBitmapImage.EndInit();
//set image source
myImage.Source = myBitmapImage;
要将图像保存到磁盘,您需要特定的编码器,例如JpegBitmapEncoder
答案 1 :(得分:1)
浏览器中的Silverlight应用程序无法使用文件名打开文件。您需要使用提升信任的浏览器运行它来执行此操作。
Silverlight没有内置的图像编码,因此您无法获取位图的内容(BTW您需要使用WriteableBitmap
才能访问原始图像)。
您可以在Image Tools找到所需内容。