プログラミング初心者です。 VBSもしくはC#で
プログラミング初心者です。 VBSもしくはC#で 横が1000px(固定)、縦10000px(縦のサイズはどのサイズがきても対応できるようにしたいが、必ず1000の倍数になっている)固定のbmp形式の画像を 縦1000px、横1000pxずつ上から順に切り取って、切り取った画像を 指定のフォルダ2つに、それぞれpng形式とbmp形式で保存するプログラムを作成したいです。 【横1000px、縦10000pxの画像】 プログラム実行後 ・aのフォルダに1000px × 1000pxの画像が計10枚出力されている (bmp形式で、それぞれファイル名が0000.bmp、0001.bmp、0002.bmp・・) ・bのフォルダに1000px × 1000pxの画像が計10枚出力されている (bmp形式で、それぞれファイル名が000.png、001.png、002.png・・) 初心者なのでそもそもどうすればいいかすらわかりません。 何卒宜しくお願い致します。
Visual Basic | プログラミング・115閲覧・50
ベストアンサー
C#での方法ですと 以下のような手順だと思います 1) 統合環境で C# コンソールアプリケーションを作成 2) 統合環境のメニューで 『プロジェクト』『参照の追加』で『System.Drawing』を追加 3) 『Program.cs』を開いて 下記のように編集 using System; using System.Collections.Generic; using System.Text; // 下の2行を追加 using System.Drawing; using System.IO; namespace プロジェクト名 // 自身で作成した名前 { class Program { static void Main(string[] args) { Program p = new Program(); p.SeparateImage(args[0]); } void SeparateImage(string sName) { Bitmap bmp = new Bitmap(sName); Bitmap sep = new Bitmap( bmp.Width, 1000, bmp.PixelFormat); string sCurDir = Directory.GetCurrentDirectory(); sCurDir = sCurDir.ToLower(); sCurDir = sCurDir.Replace("\\bin\\debug", ""); Directory.SetCurrentDirectory(sCurDir); // フォルダー aの生成 if (!Directory.Exists(".\\a")) Directory.CreateDirectory(".\\a"); // フォルダーbの生成 if (!Directory.Exists(".\\b")) Directory.CreateDirectory(".\\b"); string sPath; // 何分割するか計算 int nMax = bmp.Height / 1000; for (int n = 0; n < nMax; n++) { // 分割サイズの Graphicsを生成 Graphics g = Graphics.FromImage(sep); // イメージの描画 g.DrawImage(bmp, 0, -1000 * n); g.Dispose(); // イメージの保存 sPath = string.Format(".\\a\\{0:0000}.bmp", n); sep.Save(sPath, System.Drawing.Imaging.ImageFormat.Bmp); Console.Write("{0} saved ... ", sPath); sPath = string.Format(".\\b\\{0:0000}.png", n); sep.Save(sPath, System.Drawing.Imaging.ImageFormat.Png); Console.WriteLine("{0} saved", sPath); } } } }
質問者からのお礼コメント
ありがとうございます。無事できました。 exeファイルのみ単一で発行したいのですが可能でしょうか。 また新しく質問出してますのでよければご回答お願いしたいです。
お礼日時:1/23 1:55