iPod touchに大量の写真を保存する1つの方法

タイトルはあれですが、まあようするに画像サイズを小さくすればいいですよねというお話です。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ResizePhoto
{
    class Program
    {
        static void Main(string[] args)
        {
            var sourceDir = @"D:\Pictures\dist";
            var distDir = @"D:\Pictures\dist2\";
            var widthPx = 400;

            var files = System.IO.Directory.GetFiles(sourceDir, "*.jpg", System.IO.SearchOption.AllDirectories);

            resize(distDir, files, widthPx);
        }

        private static void resize(string distDir, string[] files, int widthPx)
        {
            files.ToList().ForEach(
                file => {
                    var img = System.Drawing.Image.FromFile(file);
                    var heightPx = (int)((float)img.Height * ((float)widthPx / (float)img.Width));
                    var thumbnail = new System.Drawing.Bitmap(widthPx, heightPx);
                    using (var g = System.Drawing.Graphics.FromImage(thumbnail))
                    {
                        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                        g.DrawImage(img, 0, 0, widthPx, heightPx);
                    }
                    thumbnail.Save(distDir + System.IO.Path.GetFileName(file));
                });
        }
    }
}