0

我正在尝试执行以下操作(在 WPF 中):

  1. 加载图像(具有足够大的透明背景以包含投影的 .png 文件)。
  2. 应用投影效果。
  3. 将修改后的位图另存为新文件。

这是我尝试过的:

// Source and target image files
string srcImageFile = @"D:\foo.png";
string targetImageFile = @"D:\foo_shadow.png";

// Load source image
Uri uri = new Uri (srcImageFile);
BitmapImage bi = new BitmapImage (uri);

// Add drop shadow
Image img = new Image();
img.Source = bi;
DropShadowEffect dse = new DropShadowEffect();
dse.Direction = 225;
dse.Color = Color.FromArgb (255, 182, 194, 203);
dse.ShadowDepth = 10;
dse.BlurRadius = 14;
img.Effect = dse;

// Save modified image
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add (BitmapFrame.Create (bi));
using (Stream outputStream = File.OpenWrite (targetImageFile)) {
    encoder.Save (outputStream);
}

生成的目标文件包含与源文件相同的图像。显然,我需要在保存目标文件之前获取修改后的位图。朝正确方向轻推将不胜感激。

4

0 回答 0