如何从另一个BitmapImage的调整大小的BitmapImage在内存中,而不是在文件系统

如何从另一个BitmapImage的调整大小的BitmapImage在内存中,而不是在文件系统

问题描述:

这是如何从另一个BitmapImage的调整大小的BitmapImage在内存中,而不是在文件系统

Datacontract serialization/serialization with images

延续所以现在我有一个BitmapImage的从流过来。简而言之,我想将其调整到所需的大小。

我已经找到了如何从图像调整文件系统上的大量代码,但没有就如何从一个已经存在的BitmapImage调整

编辑: enter image description here

您可以使用带有一个TransformedBitmap适当ScaleTransform

BitmapImage sourceBitmap = ... 
var targetBitmap = new TransformedBitmap(sourceBitmap, new ScaleTransform(0.5, 0.5)); 

结果是一个TransformedBitmap,而不是一个BitmapImage的。但是,这并不重要,因为在您的应用程序中应该不需要仅处理BitmapImages。用基类BitmapSource甚至ImageSource来完成所有与图像相关的东西就足够了。例如。 Image控件的Source属性的类型为ImageSource

+0

TransformedBitmap想要一个bitmapSource而不是bitmapImage。它不会生成,并且不允许轻松转换 – Luca

+0

BitmapImage是从BitmapSource派生的。您可以将BitmapImage传递给接受BitmapSource参数的每个方法 – Clemens

+0

请参阅我的add。然后,Tranform可以使用像素而不是百分比吗? – Luca