Jul*_*zuk 5 c# wpf image type-conversion imagesource
我想在我的WPF应用程序中将Image转换为ImageSource.我使用Code128库正常工作(已在WinForms应用程序中检查).下面的函数返回正确大小的ImageSource,但没有任何内容可见.
private ImageSource generateBarcode(string number)
{
var image = Code128Rendering.MakeBarcodeImage(number, 1, false);
using (var ms = new MemoryStream())
{
var bitmapImage = new BitmapImage();
image.Save(ms, ImageFormat.Bmp);
bitmapImage.BeginInit();
ms.Seek(0, SeekOrigin.Begin);
bitmapImage.StreamSource = ms;
bitmapImage.EndInit();
return bitmapImage;
}
}
Run Code Online (Sandbox Code Playgroud)
更新:最好的方法是下面的Clemens评论的方法.比使用memorystream快约4倍.
Cle*_*ens 10
您必须设置BitmapCacheOption.OnLoad以确保在EndInit()调用时立即加载BitmapImage .如果没有该标志,则必须保持流打开,直到实际显示BitmapImage.
using (var ms = new MemoryStream())
{
image.Save(ms, ImageFormat.Bmp);
ms.Seek(0, SeekOrigin.Begin);
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.StreamSource = ms;
bitmapImage.EndInit();
return bitmapImage;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9129 次 |
| 最近记录: |