Exemplo n.º 1
0
        public void 画像を100ピクセルにリサイズ()
        {
            if (!IsLocal)
                return;

            var files = Directory.GetFiles(TestContext.DeploymentDirectory, "*.jpg");
            var resizer = new ImageResizer();

            var baseDir = TestContext.TestDir;
            foreach (var file in files)
            {
                var name = Path.GetFileName(file);
                var path = Path.Combine(baseDir, "opt-" + name);

                // 実行できたなら結果は目視でいいんじゃん?
                resizer.Optimize(file, path);
                Assert.IsTrue(resizer.Resize(path, ResizeMode.Fit, 100, Path.Combine(baseDir, "fit-" + name)));
                Assert.IsTrue(resizer.Resize(path, ResizeMode.Clip, 100, Path.Combine(baseDir, "clip-" + name)));
            }
        }
Exemplo n.º 2
0
        public Stream GetImage(Photo photo, ResizeMode type, int size)
        {
            // クラウドに送り込んだ?
            if (!photo.IsUploaded)
                return null;

            // 処理中?
            //if (!_processing.Lock(photo.Id))
            //{
            //    var dump = string.Format("[id = {0}, type = {1}, size = {2}]", photo.Id, type, size);
            //    Trace.WriteLine(" can't get lock - " + dump + " : " + DateTime.Now);
            //    return null;
            //}

            // ファイルがあるなら即返す
            var loadName = GenerateFileName(photo.FileName, type, size);
            var loadPath = CacheFullPath(loadName);
            var entry = new StorageEntry(photo);
            var resizer = new ImageResizer();
            if (!File.Exists(loadPath))
            {
                // キャッシュになければStorageから取り出す。
                var cacheName = RetrieveCache(photo.FileName);
                if (string.IsNullOrEmpty(cacheName))
                    return null;

                // 最適化して回転する
                var optName = GenerateFileName(photo.FileName, ResizeMode.Optimize);
                var optPath = CacheFullPath(optName);
                resizer.Optimize(cacheName, optPath);

                // ローカルキャッシュにリサイズしたものを取得
                GenerateResize(optPath, loadName, type, size);
            }
            //_processing.Unlock(photo.Id);

            var bytes = entry.Load(CachePath, loadName);

            return bytes == null ? null : new MemoryStream(bytes);
        }
Exemplo n.º 3
0
        public void 画像を自動回転()
        {
            if (!IsLocal)
                return;

            var files = Directory.GetFiles(TestContext.DeploymentDirectory, "*.jpg");
            var resizer = new ImageResizer();

            foreach (var file in files)
            {
                var baseDir = TestContext.TestDir;
                var path = Path.Combine(baseDir, "orientation-" + Path.GetFileName(file));

                // 実行できたなら結果は目視でいいんじゃん?
                resizer.Optimize(file, path);

                Assert.IsTrue(File.Exists(path));
            }
        }