C# UWP应用中的图像平滑
我有一个小型UWP应用程序,它通过两种方式加载相同的图像:C# UWP应用中的图像平滑,c#,image,uwp,uwp-xaml,C#,Image,Uwp,Uwp Xaml,我有一个小型UWP应用程序,它通过两种方式加载相同的图像: var folder = Package.Current.InstalledLocation; var file = await folder.GetFileAsync("TestImage.png"); var bitmapImage1 = new BitmapImage(); using (var stream = await file.OpenAsync(FileA
var folder = Package.Current.InstalledLocation;
var file = await folder.GetFileAsync("TestImage.png");
var bitmapImage1 = new BitmapImage();
using (var stream = await file.OpenAsync(FileAccessMode.Read))
{
await bitmapImage1.SetSourceAsync(stream);
}
var bitmapImage2 = new BitmapImage(new Uri(BaseUri, "TestImage.png"));
_image.Source = bitmapImage1;
//_image.Source = bitmapImage2;
问题是图像控件以不同的方式显示相同的图像。对于bitmapImage1,图像不会平滑,但对于bitmapImage2,图像可以平滑。我需要在显示前对图像进行一些处理(更改一些像素),但在这之后我还需要对图像进行平滑处理。你能帮我吗
我还使用WriteableBitmap更改了一些像素,并得到了相同的结果(未平滑)。看起来我需要告诉图像控制如何画这个
这里有更多信息我测试了您的代码。你会发现,如果你没有为图像控件设置
高度
和宽度
属性,图片看起来都是一样的。因此,一个看起来平滑,而另一个看起来不平滑的原因是图像控件缩放图片。如果不进行缩放,图片看起来不会有什么不同。我想这可能是由于矢量和位图图像之间的差异造成的
您应该能够通过创建一张平滑的图片来解决此问题,该图片的大小与您只想在应用程序中显示的大小相同,并将图像控件设置为与图片相同的大小,或者不设置高度
和宽度
属性,这可能会得到解决
我的结果是:
我在另一个线程上找到了解决方案。 如果更改代码行的顺序,则有助于:
var folder = Package.Current.InstalledLocation;
var file = await folder.GetFileAsync("TestImage.png");
var bitmapImage1 = new BitmapImage();
_image.Source = bitmapImage1;
using (var stream = await file.OpenAsync(FileAccessMode.Read))
{
await bitmapImage1.SetSourceAsync(stream);
}
所以我们应该分配图像源,然后将源流设置为位图
看起来,图像控件对图片的解码相当灵活,因此它可以适应实际的用户界面大小。如果先将BitmapImage设置为Image.Source,则图片将像第二个一样进行适当平滑
谢谢你的回答。不幸的是,或者我不明白你的意思,或者这不是解决我的问题的办法。我需要缩放图像,因为需要有某种图像查看器能够改变图像,所以用户应该能够看到不同比例的图像。这里是所有项目的档案-