34267


こんにちは。

現在、ファイルサーバから社外のレンタルサーバへ、  
画像ファイルをFTP送信する機能を構築・運用しています。

**前提・実現したいこと**

運用を行う中で、日々のファイル総量が増大しており、  
FTP送信処理の通信時間を削減する事が課題となっています。

そこで、画像ファイルを圧縮・リサイズして軽量化を行う  
機能を新規に構築したいと考えているのですが、  
どのツールを使用すべきか？という点で悩んでおります。

【ツールに求める条件】

・Windows環境で動作する。  
・画像のリサイズ・圧縮ができる。  
・APIのようにプログラムに組み込み、またはコマンドラインで一括処理ができる。  
・.jpgファイルが処理できる。  
・有償/無償は問わない。

**試したこと**

まず最初に「ImageMagick(Magick.Net)」をテストしており、  
その対抗馬になるような候補を探しています。

**_補足情報(言語/FW/ツール等のバージョンなど)_**

OS:Windows  
開発言語:C#, VB.NET


CC BY-SA 3.0
2017-04-25T07:20:38.067
34266
2017-04-25T07:49:47.363
2017-04-25T07:49:47.363
22768
22768
question
c# vb.net
画像ファイルを圧縮するツールを教えて頂きたいです。


.NET Frameworkに含まれるWindows Imaging
Componentのラッパーである`System.Windows.Media.Imaging.JpegBitmapEncoder`などを使用すればよいと思います。

[code]

    // WindowsBase.dll
    // PresentationCore.dll
    // using System.IO;
    // using System.Windows.Media;
    // using System.Windows.Media.Imaging;
    
    // 元画像の読み込み
    var fileName = "test.jpg";
    var src = BitmapFrame.Create(new FileStream(fileName, FileMode.Open));
    
    // 画像の縮小
    var dest = new TransformedBitmap(src, new ScaleTransform(0.5, 0.5));
    
    // 画質を指定して保存する
    var enc = new JpegBitmapEncoder();
    enc.Frames.Add(BitmapFrame.Create(dest));
    
    // 品質: 0-100
    enc.QualityLevel = 5;
    using (var fs = new FileStream("out.jpg", FileMode.Create))
    {
        enc.Save(fs);
    }
    
[/code]


CC BY-SA 3.0
2017-04-25T07:33:47.353
34267
2017-04-25T07:44:05.330
2017-04-25T07:44:05.330
5750
5750
34266
answer