ezo Style

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を作成して保存することができます。