我已阅读此问题High Quality Image Scaling Library,但它仅适用于GDI +。
当我缩小我的应用中的Image
时,它变得非常锯齿状。
我无法在Image
课程中找到任何允许我提高缩小质量的属性。
我该怎么做?
编辑:
我现在使用了这段代码:
BitmapImage img = new BitmapImage();
img.UriSource = new Uri(Graphic, UriKind.Relative);
return img;
其中Graphic
是string
,其中包含图片的路径,但我收到此异常:
类型' System.ArgumentException'的例外情况发生在Weather.DLL中,但未在用户代码中处理
附加信息:给定的System.Uri无法转换为Windows.Foundation.Uri。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=215849。
据我所知,Windows.Foundation.Uri
未在.net
框架中使用。
那么为什么它会给我这个错误?
答案 0 :(得分:9)
在XAML中:
<Image Width="250" Height="250" Stretch="UniformToFill">
<Image.Source>
<BitmapImage UriSource="{Binding ImagePath}" DecodePixelHeight="250"/>
</Image.Source>
</Image>
在C#中:
BitmapImage bitmapImage = BitmapImage("URL HERE");
bitmapImage.DecodePixelHeight = 250;
仅设置DecodePixelHeight或DecodePixelWidth。
答案 1 :(得分:0)
我最终创建了第二个较小的图像,并在我需要缩小它的所有地方使用它。
答案 2 :(得分:0)
您可以通过使用内置的图像缩放支持来完全避免您遇到的问题:
http://msdn.microsoft.com/en-us/library/windows/apps/hh465362.aspx
您可以以不同的分辨率包含多个版本的图像(相同的文件名,但具有已知的后缀或已知文件夹),系统将自动为用户设备的DPI加载适当的版本。