在WPF图像控制中降低图像分辨率
我有一个WPF中的图像控件。我需要减少图像大小控制宽度和高度。但当我这样做时,图像看起来并不好。数据丢失更严重 所以我想降低图像分辨率,而不是仅仅改变图像控制的宽度和高度 有谁能帮我在WPF图像控件中更改绑定图像的图像分辨率吗 [我的意思是图像已绑定到图像控件,现在我只需更改分辨率即可]1)尝试使用ViewBox:将图像放在ViewBox中。在WPF图像控制中降低图像分辨率,wpf,Wpf,我有一个WPF中的图像控件。我需要减少图像大小控制宽度和高度。但当我这样做时,图像看起来并不好。数据丢失更严重 所以我想降低图像分辨率,而不是仅仅改变图像控制的宽度和高度 有谁能帮我在WPF图像控件中更改绑定图像的图像分辨率吗 [我的意思是图像已绑定到图像控件,现在我只需更改分辨率即可]1)尝试使用ViewBox:将图像放在ViewBox中。 2) 有时渲染引擎会因为像素对齐问题而降低质量,尤其是在低分辨率设备上。查看SnapsToDevicePixels属性,并尝试在包含控件和/或ViewBo
2) 有时渲染引擎会因为像素对齐问题而降低质量,尤其是在低分辨率设备上。查看SnapsToDevicePixels属性,并尝试在包含控件和/或ViewBox中将其设置为true。
3) 显然,您可以编写执行分辨率更改的控件,但这是一项相当艰巨的工作。您可以使用DecodePixelWidth属性,如下所示:
<Image Stretch="Fill">
<Image.Source>
<BitmapImage CacheOption="OnLoad" DecodePixelWidth="2500" UriSource="Images/image.jpg"/>
</Image.Source>
</Image>
在.NET 4中,他们将默认图像缩放改为低质量缩放…因此您可以使用
位图缩放模式
切换回高质量模式:
<Image RenderOptions.BitmapScalingMode="HighQuality"
Source="myimage.png"
Width="100"
Height="100" />
UseLayoutRounding=“True”
放在根元素(即窗口)…建议在.NET 4中使用此选项,而不是SnapToDevicePixels
:
- 试试这个
Image img = new Image();
var buffer = System.IO.File.ReadAllBytes(_filePath);
MemoryStream ms = new MemoryStream(buffer);
BitmapImage src = new BitmapImage();
src.BeginInit();
src.StreamSource = ms;
src.DecodePixelHeight = 200;//Your wanted image height
src.DecodePixelWidth = 300; //Your wanted image width
src.EndInit();
img.Source = src;
我的GIF图像非常大。如何使用WPF动画GIF设置
DecodePixelWidth
和DecodePixelHeight
?