加载图像文件,添加投影,保存文件

时间:2013-09-10 16:19:12

标签: c# wpf image-processing

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

  1. 加载图像(具有足够透明背景的.png文件 包含阴影)。
  2. 应用阴影效果。
  3. 将修改后的位图另存为新文件。
  4. 这是我尝试过的:

    // 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);
    }
    

    生成的目标文件包含与源文件相同的图像。显然,我需要在保存目标文件之前获取修改后的位图。我们将欣赏正确方向的推动。

0 个答案:

没有答案