C# 高质量图像缩放
我读过这个问题,但它只涉及GDI+ 当我在我的应用程序中缩小C# 高质量图像缩放,c#,xaml,windows-8,microsoft-metro,windows-runtime,C#,Xaml,Windows 8,Microsoft Metro,Windows Runtime,我读过这个问题,但它只涉及GDI+ 当我在我的应用程序中缩小图像的比例时,它会变得非常粗糙 我在Image类中找不到任何允许我提高向下缩放质量的属性 我该怎么做 编辑: 我现在使用了以下代码: BitmapImage img = new BitmapImage(); img.UriSource = new Uri(Graphic, UriKind.Relative); return img; 其中Graphic是一个字符串,它包含图像的路径,但我遇到了以下异常: Weather.DLL中发生“
图像的比例时,它会变得非常粗糙
我在Image
类中找不到任何允许我提高向下缩放质量的属性
我该怎么做
编辑:
我现在使用了以下代码:
BitmapImage img = new BitmapImage();
img.UriSource = new Uri(Graphic, UriKind.Relative);
return img;
其中Graphic
是一个字符串
,它包含图像的路径,但我遇到了以下异常:
Weather.DLL中发生“System.ArgumentException”类型的异常,但未在用户代码中处理
附加信息:给定的系统。URI不能转换成窗口。详情请参阅
据我所知,<代码> Windows .Fund。Uri < /C> >不在<代码> .NET/COD>框架中使用。
那么为什么它会给我这个错误呢?我最终创建了第二个更小的图像,并在所有需要缩小的地方使用它。在XAML中:
<Image Width="250" Height="250" Stretch="UniformToFill">
<Image.Source>
<BitmapImage UriSource="{Binding ImagePath}" DecodePixelHeight="250"/>
</Image.Source>
</Image>
仅设置DecodePixelHeight或DecodePixelWidth
通过使用内置的图像缩放支持,您可以完全避免遇到的问题:
您可以包括不同分辨率的图像的多个版本(相同的文件名,但具有已知后缀或位于已知文件夹中),系统将自动为用户设备的DPI加载相应的图像。您在谈论哪种图像类别?您缩小图像的比例的因素是什么?您可以发布您的代码吗?@PaoloMoretti我的代码基本上只是一个设置较小宽度和高度的
标记。我不认为您可以在XAML中实现这一点。WPF具有用于更改插值模式的附加属性,但这在WinRT中不可用。您可能必须在代码隐藏中创建新的缩放图像。也许对你有帮助。
BitmapImage bitmapImage = BitmapImage("URL HERE");
bitmapImage.DecodePixelHeight = 250;