C# 如何从内存中而不是文件系统中的另一个位图图像调整位图图像的大小

C# 如何从内存中而不是文件系统中的另一个位图图像调整位图图像的大小,c#,wpf,resize,bitmapimage,C#,Wpf,Resize,Bitmapimage,这是本书的延续 现在我有一个来自流的位图图像。简而言之,一个位图图像 我想将其调整到所需的大小 我已经找到了大量关于如何从文件系统中的图像调整大小的代码,但没有找到关于如何从现有的BitmapImage调整大小的代码 编辑: 您可以使用具有适当缩放转换格式的转换位图: 结果是转换的位图,而不是位图图像。但是,这并不重要,因为在应用程序中,不需要只处理位图图像。使用基类BitmapSource甚至ImageSource完成所有与图像相关的工作就足够了。例如,图像控件的Source属性的类型为Ima

这是本书的延续

现在我有一个来自流的位图图像。简而言之,一个位图图像 我想将其调整到所需的大小

我已经找到了大量关于如何从文件系统中的图像调整大小的代码,但没有找到关于如何从现有的BitmapImage调整大小的代码

编辑:

您可以使用具有适当缩放转换格式的转换位图:

结果是转换的位图,而不是位图图像。但是,这并不重要,因为在应用程序中,不需要只处理位图图像。使用基类BitmapSource甚至ImageSource完成所有与图像相关的工作就足够了。例如,图像控件的Source属性的类型为ImageSource。

您可以使用具有适当比例转换的转换位图:


结果是转换的位图,而不是位图图像。但是,这并不重要,因为在应用程序中,不需要只处理位图图像。使用基类BitmapSource甚至ImageSource完成所有与图像相关的工作就足够了。例如,图像控件的Source属性的类型为ImageSource。

TransformedBitmap需要bitmapSource而不是bitmapImage。它不生成,也不允许轻松强制转换BitMapImage是从BitmapSource派生的。您可以将BitmapImage传递给每个接受BitmapSource参数的方法。请参阅我的添加。然后可以转换为使用像素而不是百分比吗?targetBitmap应该是BitmapSource类型,而不是BitmapImage类型。比例因子可以通过初等数学计算。将所需的宽度/高度除以源位图的实际宽度/高度,如图所示,例如:TransformedBitmap需要bitmapSource而不是bitmapImage。它不生成,也不允许轻松强制转换BitMapImage是从BitmapSource派生的。您可以将BitmapImage传递给每个接受BitmapSource参数的方法。请参阅我的添加。然后可以转换为使用像素而不是百分比吗?targetBitmap应该是BitmapSource类型,而不是BitmapImage类型。比例因子可以通过初等数学计算。将所需的宽度/高度除以源位图的实际宽度/高度,如图所示,例如:
BitmapImage sourceBitmap = ...
var targetBitmap = new TransformedBitmap(sourceBitmap, new ScaleTransform(0.5, 0.5));