我正在尝试执行以下操作(在WPF中):
这是我尝试过的:
// 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);
}
生成的目标文件包含与源文件相同的图像。显然,我需要在保存目标文件之前获取修改后的位图。我们将欣赏正确方向的推动。