-3

数字を中心にした200x200の画像を複数作成し、対応するファイル名で自動的にフォルダに保存したい。それだけで、それ以上は何もありません。

これをイメージボックスで試してループで書き込むのが最善だと思いましたが、どこにも行きません。何か案は?

4

3 に答える 3

2

あなたは正しい方向に進んでいます、つぼみ。でも; 目的を達成するには、 System.Drawing名前空間で使用可能な「Graphics」クラスを呼び出す必要があります。

あなたがしたい仕事はとても簡単です。

作成したい画像を最初にループします

5枚の画像が欲しいとしましょう

... forループを呼び出します!

for (int I = 0; I < 5; I++) { }

ループ内で、編集可能な200x200の画像を作成します。私はこれを達成するために「ビットマップ」クラスを好みます。

ビットマップを作成したら、そのグラフィックを作成します。それから私はおよそでひもを描きます。センター。100%の中心が必要な場合は、MeasureString関数を使用できます

最終コード:

for (int I = 0; I < 5; I++) {
    Bitmap B = new Bitmap(200, 200);
    Graphics G = Graphics.FromImage(B);
    G.DrawString(I.ToString(), this.Font, Brushes.Black, new PointF(100.0f, 100.0f);
    B.Save(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolders.Desktop), I + ".png"))) // Save on the desktop
}

このコードはまだ試していませんが、機能すると思います。いくつかの変更が必要になる場合があります:)

于 2012-12-25T23:16:03.637 に答える
0

携帯しか持ってなくてすみません…

疑似コードで

ループを作成します。

Inside the loop create a bitmap
    // for i=0...
    // using (var BMP = new bitmap(dimensions))
    {
    // get graphics 
       Using (graphics g = graphics.fromimage(BMP))
    {
    // draw text
    Text render.draw text()
    // save image
    }
    }
于 2012-12-25T23:17:46.777 に答える
0

これは、面倒な作業を行うメソッドを持つのと同じくらい簡単です。

public void CreateImageWithText(string text)
{
    using (var b = new Bitmap(200, 200))
    {
        using (var g = new Graphics.FromImage(b))
        {
            using (var f = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point))
            {
                var strFormat = new StringFormat();
                strFormat.Alignment = StringAlignment.Center;
                strFormat.LineAlignment = StringAlignment.Center;

                g.DrawString(text, f, Brushes.Blue, new Rectangle(0,0,200,200), strFormat);
            }
        }
        b.Save("C:\\image.jpg", ImageFormat.Jpeg);
    }
}

そして、 for ループで次のことを行います。

for (var i = 0; i < 5; i++)
    CreateImageWithText(string.Format("{0}", i));

何度も呼び出す予定がある場合はBitmapGraphicsとインスタンスを正しく破棄することを忘れないでください。Fontこれが、私のメソッドの using ステートメントの目的です。

于 2012-12-25T23:21:26.803 に答える