C# WPF:如何创建位图图像。。。从另一个位图图像?
我有一个方法,我接受一个小的BitmapImage作为参数,比如说25x25C# WPF:如何创建位图图像。。。从另一个位图图像?,c#,wpf,image-processing,C#,Wpf,Image Processing,我有一个方法,我接受一个小的BitmapImage作为参数,比如说25x25 public BitmapImage MakeLargerAndAddBorder(BitmapImage smallImage) { ... } 我希望这个方法能返回一个更大的图像,比如说50x50,它可以将较小的图像放在中间(不缩放或改变这个小的图像你),给它一个背景色,并在它上面打一个白色的边框。我想知道这是否可能?说来话长,但我没有图像的URL,只有一个现有的BitmapImage对象。。。我想知道我是
public BitmapImage MakeLargerAndAddBorder(BitmapImage smallImage)
{
...
}
我希望这个方法能返回一个更大的图像,比如说50x50,它可以将较小的图像放在中间(不缩放或改变这个小的图像你),给它一个背景色,并在它上面打一个白色的边框。我想知道这是否可能?说来话长,但我没有图像的URL,只有一个现有的BitmapImage对象。。。我想知道我是否可以通过编程方式将其转换为更大的图像?我一直在谷歌上搜索这个,但我真的找不到一种方法来编程创建位图图像。(尤指现有的)您想要WriteableBitmap.)只需创建一个WriteableBitmap,其参数与原始参数相同(具有修改后的大小)。然后锁定位图并使用其BackBuffer属性访问底层像素。您应该能够使用CopyPixels()方法将原始图像复制到新图像中。下面是一个在XAML中执行此操作的示例,其中包含一些代码
<Border Width="50" Height="50" BorderThickness="2" BorderBrush="Black">
<Image x:Name="myImage" Height="25"
Width="25"/>
</Border>
如果您没有在XAML中设置图像和边框的大小,它们应该扩展到所需的任何大小。创建较大位图的目的是什么?这仅用于视觉演示,还是需要保存更大版本的图像?这只是用于视觉演示(我不需要将其保存为文件或任何东西)。您可以使用在边框控件(或两个)中包装的图像控件吗?不要忘记考虑奇偶图像大小来设置中心的输出图像。25是奇数,所以中心是像素13。50甚至是中心在25和26像素之间。
myImage.Source = bitmap; // your bitmap object.