我正在尝试将图像加载到Silverlight图像控件的本地路径中。这是一个浏览器外的应用程序。当我使用流加载图像时,它总是颠倒过来。
知道为什么吗?这种情况只发生在大图像上。
这里的FileName提供了本地文件系统的完整路径,如C:\imageFullPath\image.jpg。
请帮帮忙。以下是代码。
-在模型端
public BitmapImage DisplayImage
{
get
{
if (!string.IsNullOrWhiteSpace(FileName))
{
var b = new BitmapImage();
b.SetSource(System.IO.File.OpenRead(FileName));
return b;
}
return null;
}
}-在Silverlight视图端
<Image Source="{Binding DisplayImage, Mode=TwoWay}" Width="450" Height="250" Margin="0,0,0,0"/>调试时看到的内容

发布于 2013-12-18 03:17:28
BMP是normally stored "upside-down",像素从下到上的顺序是相反的,但是可以在文件头中使用负的高度来指示图像是从上到下存储的,所以您可能会有这样的图像。
这是发生在所有图像上,还是只发生在这一张图像上?
您可以尝试更改图像的加载方式,在构造函数中使用Uri,而不是使用Stream调用SetSource(),因为它可能会以不同的方式说明标题和读取文件:
var b = new BitmapImage(new Uri(FileName));
return b;或者,如果这不起作用,您可以使用apply a transform来翻转每个图像,但这并不能解决根本问题:
<Image Source="{Binding DisplayImage, Mode=TwoWay}" Width="450" Height="250" Margin="0,0,0,0">
<Image.RenderTransform>
<ScaleTransform ScaleY="-1" />
</Image.RenderTransform>
</Image>https://stackoverflow.com/questions/20641515
复制相似问题