Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF:如何创建位图图像。。。从另一个位图图像?_C#_Wpf_Image Processing - Fatal编程技术网

C# WPF:如何创建位图图像。。。从另一个位图图像?

C# WPF:如何创建位图图像。。。从另一个位图图像?,c#,wpf,image-processing,C#,Wpf,Image Processing,我有一个方法,我接受一个小的BitmapImage作为参数,比如说25x25 public BitmapImage MakeLargerAndAddBorder(BitmapImage smallImage) { ... } 我希望这个方法能返回一个更大的图像,比如说50x50,它可以将较小的图像放在中间(不缩放或改变这个小的图像你),给它一个背景色,并在它上面打一个白色的边框。我想知道这是否可能?说来话长,但我没有图像的URL,只有一个现有的BitmapImage对象。。。我想知道我是

我有一个方法,我接受一个小的BitmapImage作为参数,比如说25x25

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.