2012-05-15 64 views
0

我一直在使用sql ce將一些數據到我的應用程序。現在我需要添加一些圖像,使它看起來很漂亮。什麼都我想知道的是數據綁定的圖像使用sql ce的Windows Phone 7

  1. 必須有一些圖像進行字節轉換,
  2. 檢索圖像字節碼,並轉換回圖像。

我被困在第二部分,我該如何繼續?

引用需要任何鏈接或示例。

非常感謝。

回答

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"/> 
+0

PictureDecoder並不在這裏工作,我失去了什麼? – Xander

+0

「不起作用」,請您詳細說明一下嗎?任何錯誤消息? –

+0

糟糕我錯過了 使用System.Windows.Resources; using System.Windows.Media.Imaging; using Microsoft.Phone;這些參考。對不起, – Xander