0

我一直在使用 sql ce 将一些数据带到我的应用程序中。现在我需要添加一些图像让它看起来很漂亮。我只想知道

  1. 必须完成一些图像到字节的转换,
  2. 检索图像字节码并转换回图像。

我在第二部分卡住了,我应该如何继续?

参考需要任何链接或示例。

非常感谢。

4

1 回答 1

1

这是我过去使用的一些想法。

数据库中的图像列:

[Column]
public byte[] MyImage
{
  get { return _myImage; }
  set
  {
    if (_myImage != value)
    {
      _myImage = value;
      NotifyPropertyChanging("MyImage");
      NotifyPropertyChanged("MyImage");
    }
  }
}

保存图片:

public void AddNewImage(Stream image, string url)
{
  byte[] byteArray = GetImageBytes(image);

  var item = new MyDatabaseItem { Count = 1, ItemImageUrl = url, MyImage = byteArray };
  MyDatabaseItemModel.Add(item);
  MyDatabaseDB.MyDatabaseItems.InsertOnSubmit(item);
  MyDatabaseDB.SubmitChanges();
}

获取图像:

private byte[] GetImageBytes(Stream stream)
{
  using (var ms = new MemoryStream())
  {
    var writeableBitmap = PictureDecoder.DecodeJpeg(stream, 200, 200);
    writeableBitmap .SaveJpeg(ms, 200, 200, 0, 30);
    return ms.ToArray();
  }
}

使用值转换器:

public class ImageConverter: IValueConverter
{
  public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
  {
    if (value is byte[])
    {
      var memoryStream = new MemoryStream(value as byte[]);
      varwriteBitmap = PictureDecoder.DecodeJpeg(memoryStream, 200, 200);
      return writeBitmap;
    }
    else
      return null;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
      throw new NotImplementedException();
    }
}

最后在 XAML 中绑定它:

<Image Source="{Binding MyImage, Converter={StaticResource ImageConverter}}" Stretch="UniformToFill"/>
于 2012-05-15T07:55:18.027 回答