我正在尝试调整用户通过OpenFileDialog
控件提交的 Silverlight 3 中的图像大小。我可以抓取文件的内容并将其放入WriteableBitmap
对象中,然后将其显示在屏幕上就可以很好地放入Image
控件中。该Image
控件甚至会调整它的大小以适合我的图像控件的大小,这很棒。
问题是内存中的图像仍然是原始的全分辨率图像,我需要在内存中调整它的大小,因为我需要在每个像素的基础上执行大量昂贵的操作。到目前为止,我有以下代码......
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
btnUploadPhoto.Click += new RoutedEventHandler(UploadPhoto_Click);
}
private void UploadPhoto_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Image files (*.png;*.jpg;*.gif;*.bmp)|*.png;*.jpg;*.gif;*.bmp";
if (dialog.ShowDialog() == true)
{
WriteableBitmap bitmap = new WriteableBitmap(500, 500);
bitmap.SetSource(dialog.File.OpenRead());
imgMainImage.Source = bitmap;
txtMessage.Text = "Image size: " + bitmap.PixelWidth + " x " + bitmap.PixelHeight;
}
}
}
问题是 WriteableBitmap 类上没有 Resize 方法,在构造函数中设置高度和宽度似乎没有任何效果。