-1

私はC#でコンソールアプリケーションをやっています。このアプリでは、png タイプのビットマップを作成する必要があり、定義されたパス (C: または D: ドライブなど) に保存する必要があります。

Windowsアプリケーションでは、ビットマップを作成するための以下のコードがあり、画像ボックスに表示されます。

void CreateBitmap()
{
    System.Drawing.Bitmap flag = new System.Drawing.Bitmap(10, 10);
    for( int x = 0; x < flag.Height; ++x )
      for( int y = 0; y < flag.Width; ++y )
        flag.SetPixel(x, y, Color.White);
      for( int x = 0; x < flag.Height; ++x )
        flag.SetPixel(x, x, Color.Red);
    pictureBox1.Image = flag;
}

コンソール アプリケーションを使用してこれを作成し、指定したパスに保存するにはどうすればよいですか?

以下のようにコードを変更しましたが、まだエラーが存在します:

static void CreatePng(string[] binvalues)
{
    String aName = System.Reflection.Assembly.GetExecutingAssembly().Location;
    String aPath = System.IO.Path.GetDirectoryName(aName);
    string[] ExecDirectories = System.IO.Directory.GetDirectories(aPath);

    System.Drawing.Bitmap flag = new System.Drawing.Bitmap(10, 10);

    for (int x = 0; x < flag.Height; ++x)
        for (int y = 0; y < flag.Width; ++y)
            flag.SetPixel(x, y, Color.White);
    for (int x = 0; x < flag.Height; ++x)
        flag.SetPixel(x, x, Color.Red);
    flag.Save(aPath, System.Drawing.Imaging.ImageFormat.Png);
}

flag.save が何か間違っているように見える最後の行に実行時エラーが表示されていますか?

4

4 に答える 4

1

同じコードを使用し、 に代入する代わりに、ビットマップでメソッドをPictureBox呼び出します。Save()

flag.Save("yourpath", System.Drawing.Imaging.ImageFormat.Png);

System.Drawingデフォルトでは存在しないため、コンソール アプリケーションにへの参照を追加する必要がある場合があることに注意してください。

于 2012-11-01T14:52:14.270 に答える
0

今、私はC#を使ってこれを自分でやったことがないので、もっと熱心な人が助けてくれるかもしれませんが、私が見つけたものは次のとおりです.

1) 画像データを に保存する必要がありますBitmap。あなたがすでにこれをやっているものの見た目からflag

save()2) で関数を呼び出す必要がありますBitmap:

flag.Save(filename, ImageFormat.Png);

3)filenameは、ユーザーが定義する aStringになります。アプリケーションでユーザーにパスを入力して保存するように促すだけなので、これは非常に簡単です。

質問?

免責事項:このページから情報を受け取りました。掘り下げることができるpngを保存する「適切な」方法については、多くの議論があります。

于 2012-11-01T14:52:36.257 に答える
0

これを使って:

flag.Save(filename, System.Drawing.Imaging.ImageFormat.Png);
  1. に画像を追加する必要はありませんPictureBox。コンソール アプリケーションPictureBoxがあり、ビジュアル コントロールです。
  2. 将来の質問については、最初にSOまたは他のソースを検索するのに最小限の時間を費やして答えを見つけていただければ幸いです
  3. 質問が正しくタグ付けされていません。保存したい場合、これは WPF 専用であるためSystem.Drawing.Bitmapタグ付けできません。BitmapImageこれを変更しました。
于 2012-11-01T14:53:09.360 に答える
0

以下のコードを試すことができます-:

public bool ResizeImage(string OriginalFilepath, string NewFilepath)
{
  Bitmap original = (Bitmap)Image.FromFile(OriginalFilepath);
  Bitmap resized = new Bitmap(original, new Size(Width,Height));
  resized.Save(NewFilepath.png);      
}
于 2014-02-11T09:24:53.680 に答える