C#で打ち込んだひらがな一字一字を暗号の画像に置き換えるアプリを作っています。
そこで、画像を指定個数(今回は10個)横に連結させたら2列目につなげていくようにしたいです。
C#
1public partial class Form1 : Form 2{ 3 Bitmap ArrangeImage(string[] paths) 4 { 5 List<Image> images = new List<Image>(); 6 foreach(var path in paths) 7 { 8 images.Add(Image.FromFile(path)); 9 } 10 int maxHieght = images.Max(x => x.Height); 11 12 List<Rectangle> rects = new List<Rectangle>(); 13 int px = 0; 14 foreach (var img in images) 15 { 16 int newHeight = img.Height * maxHieght / img.Height; 17 int newWidth = img.Width * maxHieght / img.Height; 18 rects.Add(new Rectangle(px, 0, newWidth, newHeight)); 19 px += newWidth; 20 } 21 int width = rects.Sum(x => x.Width); 22 23 Bitmap bmp = new Bitmap(width, maxHieght); 24 Graphics g = Graphics.FromImage(bmp); 25 26 for (int i = 0; i < rects.Count; i++) 27 { 28 g.DrawImage(images[i], rects[i]); 29 } 30 g.Dispose(); 31 foreach (var img in images) 32 { 33 img.Dispose(); 34 } 35 return bmp; 36 } 37 38 private void button1_Click(object sender, EventArgs e) 39 { 40 List<string> paths = new List<string>(); 41 42 for(int i = 0; i < 20; i++){ 43 paths.Add(textBox1.Text); 44 paths.Add(textBox2.Text); 45 paths.Add(textBox3.Text); 46 } 47 try 48 { 49 Bitmap bmp = ArrangeImage(paths.ToArray()); 50 bmp.Save(@"D:\output.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 51 bmp.Dispose(); 52 } 53 catch 54 { 55 MessageBox.Show("失敗しました"); 56 } 57 } 58}
つまり、1列目に右に画像を10個連結させたら11個目からは2列目に右に連結させていきたいです。
どうしたらいいのでしょうか?
ご教授願います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。