2

我已经阅读了这个问题High Quality Image Scaling Library,但它只与 GDI+ 相关。

当我在我的应用程序中缩小一个Image时,它变得非常锯齿。

我在类上找不到任何Image可以提高缩小质量的属性。

我怎样才能做到这一点?

编辑:

我现在使用了这段代码:

BitmapImage img = new BitmapImage();
img.UriSource = new Uri(Graphic, UriKind.Relative);
return img;

包含图像路径的Graphica在哪里,但出现此异常:string

Weather.DLL 中出现“System.ArgumentException”类型的异常,但未在用户代码中处理

附加信息:给定的 System.Uri 无法转换为 Windows.Foundation.Uri。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=215849

据我所知,Windows.Foundation.Uri没有在.net框架中使用。

那么为什么它给我这个错误呢?

4

3 回答 3

10

在 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。

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage.decodepixelheight.aspx

于 2012-10-18T13:03:22.547 回答
0

通过使用对图像缩放的内置支持,您可能可以完全避免遇到的问题:

http://msdn.microsoft.com/en-us/library/windows/apps/hh465362.aspx

您可以包含不同分辨率的图像的多个版本(相同的文件名但具有已知后缀或位于已知文件夹中),系统将自动为用户设备的 DPI 加载适当的版本。

于 2012-10-20T00:56:47.757 回答
0

我最终创建了第二个更小的图像,并在我需要缩小它的所有地方使用它。

于 2012-10-18T10:59:11.160 回答