作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从用户那里获得图像文件路径并将图像存储在我的 sql server 数据库中。
我从用户那里获取文件并使用方法转换为 byte[]
public static byte[] ImageToByteArray( BitmapSource bitmapSource )
{
byte[] imgAsByteArray = null;
if( bitmapSource != null )
{
imgAsByteArray = ( new WriteableBitmap( ( BitmapSource )bitmapSource ) ).Pixels.SelectMany( p => new byte[]
{
( byte ) p ,
( byte )( p >> 8 ),
( byte )( p >> 16 ),
( byte )( p >> 24 )
} ).ToArray();
}
return imgAsByteArray;
}
但现在我无法将其转换回 BitmapSource。我编写的将其转换回的代码抛出异常
代码:
public static BitmapSourcebyteArrayToImage( byte[] imageBytes )
{
BitmapImage bitmapImage = null;
using( MemoryStream ms = new MemoryStream( imageBytes, 0, imageBytes.Length ) )
{
bitmapImage = new BitmapImage();
bitmapImage.SetSource( ms );
}
return (BitmapSource)bitmapImage;
}
我在行 bitmapImage.SetSource( ms );
异常信息为'catastropic fail'
最佳答案
也许 SetSource
不会读取 MemoryStream 但会链接到它,当您稍后使用 BitmapSource 时,silverlight 想要使用 MemoryStream 来获取图像,但由于您的使用,它已经被处理掉了,不再有效。
关于silverlight - 如何将 ImageSource 转换为 byte[] 并返回到 ImageSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5894170/
我是一名优秀的程序员,十分优秀!