gpt4 book ai didi

c# - c# 中的 pictureBox.Image.Save() 不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:08 24 4
gpt4 key购买 nike

我不明白这个问题。因为这通常工作到现在。该方法是对单击的 react ,用于将图像保存在称为 Canvas 的 pictureBox 上。我将图像加载到 Canvas 上,然后进行一些编辑。然后我想保存图像。如果我在加载图像之前单击 printScreenButton,它会工作,但是当我加载图像时它会停止工作。问题出在哪里?

private void printScreenButton_Click(object sender, EventArgs e)
{
canvas.Image.Save("name.png", System.Drawing.Imaging.ImageFormat.Png);
}

编辑:
Work == 名为 name.png 的文件已创建
不起作用 == 未创建名为 name.png 的文件


绘制图片代码==放入图片框

` private void drawTransformedBitmap(Matrix transformationMatrix) 
{
Graphics g = Graphics.FromImage(canvasBitmapShow); //prepare graphics

if (antialiasing)
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
}
else
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
}

g.Clear(Color.White); //clear canvas

g.Transform.Reset(); //clear transformations
g.Transform = transformationMatrix; //set transformations from transformationMatrix
g.DrawImage(canvasBitmapTarget, 0, 0); //draw from Bitmap called canvasBitmapTarget

canvas.Invalidate(); //refresh canvas
}`

开始时的初始化:

canvasBitmapShow = new Bitmap(canvas.Width, canvas.Height);
canvasBitmapSource = new Bitmap(canvas.Width, canvas.Height);
canvasBitmapTarget = new Bitmap(canvas.Width, canvas.Height);
canvasBitmapBackup = new Bitmap(canvas.Width, canvas.Height);

canvas.Image = canvasBitmapShow; //set the Image

最佳答案

canvas.Image.Save("name.png", System.Drawing.Imaging.ImageFormat.Png);

永远不要这样写代码,你没有指定文件的完整路径。这使得文件的实际位置严重依赖于程序的当前工作目录。 Environment.CurrentDirectory 的值。这可能会意外更改,例如使用未将 RestoreDirectory 属性设置为 true 的 OpenFileDialog。

如果没有异常,则可以确定文件已保存。它保存的确切位置是一个猜测。至少使用 SaveFileDialog 或 Environment.GetFolderPath() 来获取可预测的目录名称。此外,默认工作目录在您用户的计算机上不起作用,您无法写入 c:\program files。

关于c# - c# 中的 pictureBox.Image.Save() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10998779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com