私は(WPFで)次のことをしようとしています:
- 画像 (ドロップ シャドウを含めるのに十分な大きさの透明な背景を持つ .png ファイル) を読み込みます。
- ドロップ シャドウ効果を適用します。
- 変更したビットマップを新しいファイルとして保存します。
これが私が試したことです:
// 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);
}
生成されたターゲット ファイルには、ソース ファイルと同じイメージが含まれます。明らかに、ターゲット ファイルを保存する前に、変更されたビットマップを取得する必要があります。正しい方向へのナッジをいただければ幸いです。