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