我正在用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似乎出错了?
答案 0 :(得分:1)
使用相同的代码,而不是分配给PictureBox
,而是调用位图上的Save()
方法:
flag.Save("yourpath", System.Drawing.Imaging.ImageFormat.Png);
请注意,您可能必须在控制台应用程序中添加对System.Drawing
的引用,因为默认情况下它不存在。
答案 1 :(得分:0)
现在,我自己从未使用C#做过这样的事情,所以有更多倾向的人可能会提供帮助,但这是我能够找到的。
1)您需要将图像数据存储在Bitmap
中。从你已经使用flag
2)您需要调用save()
上的Bitmap
函数:
flag.Save(filename, ImageFormat.Png);
3)filename
将是您定义的String
。这很简单,因为您可以让应用程序提示用户输入路径并保存它。
有问题吗?
免责声明:我从this page收到了我的信息。关于保存你可以挖掘的png的“正确”方法有很多讨论。
答案 2 :(得分:0)
使用此:
flag.Save(filename, System.Drawing.Imaging.ImageFormat.Png);
PictureBox
。您有一个控制台应用程序,PictureBox
是一个可视化控件。System.Drawing.Bitmap
,则无法标记BitmapImage
,因为这仅适用于WPF。我改变了这个。答案 3 :(得分: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);
}