gpt4 book ai didi

silverlight - 如何将 ImageSource 转换为 byte[] 并返回到 ImageSource?

转载 作者:行者123 更新时间:2023-12-04 03:00:51 25 4
gpt4 key购买 nike

我需要从用户那里获得图像文件路径并将图像存储在我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com