0

私はSQLCEを使用して、アプリケーションにデータを取り込みました。次に、見栄えを良くするためにいくつかの画像を追加する必要があります。私が知りたいのは

  1. 画像からバイトへの変換が行われている必要があります。
  2. 画像のバイトコードを取得し、画像に変換し直します。

私は第二部で立ち往生しています、そして私はどのように続けることになっていますか?

参考のためにリンクや例が必要です。

どうもありがとう。

4

1 に答える 1

1

これが私が過去に使用したいくつかのアイデアです。

DBの画像列:

[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 に答える