C# 不使用ShowFileDialog保存图像
我的程序裁剪从磁盘加载的图像并保存为两个jpg。文件夹。我一个接一个地使用了2个ShowFileDialog,但我的教授说它的工作方式应该不同。首先,ShowFileDialog可以,因为我们键入一个文件名,然后显示路径。第二个图像应在没有SFD的情况下保存,但路径和文件名与前一个图像相同,但前缀为photo.jpg、photo1.jpg。在这里我请求你的帮助。 它应该看起来像[1]: 这是我的密码:C# 不使用ShowFileDialog保存图像,c#,save-image,C#,Save Image,我的程序裁剪从磁盘加载的图像并保存为两个jpg。文件夹。我一个接一个地使用了2个ShowFileDialog,但我的教授说它的工作方式应该不同。首先,ShowFileDialog可以,因为我们键入一个文件名,然后显示路径。第二个图像应在没有SFD的情况下保存,但路径和文件名与前一个图像相同,但前缀为photo.jpg、photo1.jpg。在这里我请求你的帮助。 它应该看起来像[1]: 这是我的密码: Boolean loaded = true; if (loa
Boolean loaded = true;
if (loaded)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "jpg(*.jpg)|*.jpg|bmp (*.bmp)|*.bmp| png(*.png) |*.png| gif(*.gif)|*.gif";
string zapis = sfd.FileName;
if (sfd.ShowDialog() == DialogResult.OK && sfd.FileName.Length > 0)
{
grafika = CropImage (new Bitmap(pictureBox1.Image, pictureBox1.Size), Obcinacz);
Bitmap Crop1 = new Bitmap(grafika, new Size(SzerReal, WysReal));
Crop1.Save(sfd.FileName, ImageFormat.Jpeg);
zapisano = true;
}
/////////////////////////////////////////////////////////////////////////////////////////SECOND IMAGE
try {
SzerAnalog = (int)Math.Round((float)SzerMM*300.0f/25.4f, 0); math.round
WysAnalog = (int)Math.Round((float)WysMM * 300.0f / 25.4f, 0);
}
catch (Exception) { MessageBox.Show("Błędnie wpisane wartości. Spróbuj użyć innych wymiarów.", "Błąd03", MessageBoxButtons.OK, MessageBoxIcon.Error); }
try
{
Bitmap grafika2 = new Bitmap(grafika, new Size(SzerAnalog, WysAnalog));
grafika2.SetResolution(300.0f, 300.0f);
Ark = grafika2;
}
catch (Exception) { MessageBox.Show("Zapis zdjęcia analogowego nie powiódł się. Spróbuj zmienić nazwę.", "Błąd04", MessageBoxButtons.OK, MessageBoxIcon.Error); }
if (DialogResult.Yes == MessageBox.Show("Zdjęcie cyfrowe zostało zapisane. Czy chcesz przygotować arkusz do druku?",
"Wydruk", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
{
// btnOK = true;
}
else return;
}
Arkusz.BackgroundImage = Ark;
Arkusz.BackgroundImageLayout = ImageLayout.Tile;
try
{
using (Bitmap compositionBmp = new Bitmap(Arkusz.Width, Arkusz.Height))
{
Arkusz.DrawToBitmap(compositionBmp, Unvisible);
SaveFileDialog sfd3 = new SaveFileDialog();
sfd3.Filter = "jpg (.jpg)|*.jpg|bmp (.bmp)|*.bmp| png(*.png)|*.png| gif (*.gif)|*.gif";
compositionBmp.SetResolution(300.0f, 300.0f);
if (sfd3.ShowDialog() == DialogResult.OK && sfd3.FileName.Length > 0)
{
compositionBmp.Save(sfd3.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
MessageBox.Show("Arkusz do wydruku został zapisany", "Zapis.", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
catch (Exception)
{
MessageBox.Show("Nieudany zapis kompozycji do druku.", "Błąd07", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
只需将第一个文件分解为各个部分,然后重新组装各个部分并添加所需的编号 这可以使用Path类来完成,该类提供了许多处理文件路径的方法
if (sfd.ShowDialog() == DialogResult.OK && sfd.FileName.Length > 0)
{
string firstFile = sfd.FileName;
string secondFile = Path.Combine(Path.GetDirectoryName(firstFile),
Path.GetFileNameWithoutExtension(firstFile) + "1" +
Path.GetExtension(firstFile));
grafika = CropImage (new Bitmap(pictureBox1.Image, pictureBox1.Size), Obcinacz);
Bitmap Crop1 = new Bitmap(grafika, new Size(SzerReal, WysReal));
// Now save the first file and the second one
grafike.Save(firstFile, ImageFormat.Jpeg);
Crop1.Save(secondFile, ImageFormat.Jpeg);
zapisano = true;
}
只需将第一个文件分解为各个部分,然后重新组装各个部分并添加所需的编号 这可以使用Path类来完成,该类提供了许多处理文件路径的方法
if (sfd.ShowDialog() == DialogResult.OK && sfd.FileName.Length > 0)
{
string firstFile = sfd.FileName;
string secondFile = Path.Combine(Path.GetDirectoryName(firstFile),
Path.GetFileNameWithoutExtension(firstFile) + "1" +
Path.GetExtension(firstFile));
grafika = CropImage (new Bitmap(pictureBox1.Image, pictureBox1.Size), Obcinacz);
Bitmap Crop1 = new Bitmap(grafika, new Size(SzerReal, WysReal));
// Now save the first file and the second one
grafike.Save(firstFile, ImageFormat.Jpeg);
Crop1.Save(secondFile, ImageFormat.Jpeg);
zapisano = true;
}