RIAにて画像をする際にサーバーを圧迫しないように画面サイズ、品質をおとしファイルサイズを小さくしてからアップロードする必要がありました。
C#で作成しMagicXpaから呼び出すします。
コンポーネントはこれぐらいで良いと思います。
using System.IO;
using System.Windows.Forms;
using System.Windows.Media;
using System.Windows.Media.Imaging;
public static class Snippet
{
public static void funcResize(System.String FilePathOld, System.String FileCopyDir, System.String FilePathNew)
{
// フォルダの作成
Directory.CreateDirectory(FileCopyDir);
// 元画像の読み込み
var src = BitmapFrame.Create(new FileStream(FilePathOld, FileMode.Open));
// 拡大率(横800pxに統一)
var scale = 800.0/src.PixelWidth;
// 画像の縮小
var dest = new TransformedBitmap(src, new ScaleTransform(scale,scale));
// 画質を指定して保存する
var enc = new JpegBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(dest));
// 品質: 0-100
enc.QualityLevel = 80;
using (var fs = new FileStream(FileCopyDir + "/" +FilePathNew, FileMode.Create))
{
enc.Save(fs);
}
}
}
これで元画像の横幅を800px、品質を80%に変更し、元画像のフォルダにFileCopyDirを作成して保存することができます。