我一直在使用 sql ce 将一些数据带到我的应用程序中。现在我需要添加一些图像让它看起来很漂亮。我只想知道
- 必须完成一些图像到字节的转换,
- 检索图像字节码并转换回图像。
我在第二部分卡住了,我应该如何继续?
参考需要任何链接或示例。
非常感谢。
我一直在使用 sql ce 将一些数据带到我的应用程序中。现在我需要添加一些图像让它看起来很漂亮。我只想知道
我在第二部分卡住了,我应该如何继续?
参考需要任何链接或示例。
非常感谢。
这是我过去使用的一些想法。
数据库中的图像列:
[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"/>