PDA

View Full Version : سوال: نحوه ذخیره سازی صحیح عکس



csprog
دوشنبه 19 مرداد 1394, 18:56 عصر
سلام به همه دوستان. توی یه جای برنامه ام ( به زبان سی شارپ)می خوام تصویری که توی PictureBox آوردم یه جای دلخواه ذخیره کنم. از هر راهی که امتحان کردم آخرش با این خطا مواجه شدم
(A generic error occurred in GDI+) اگه کسی راه حلی بده ممنون میشم

rg_BlackRose
دوشنبه 19 مرداد 1394, 21:33 عصر
سلام

با این نمونه برنامه ای که براتون قرار دادم تست کنید.

تصویر فرم اصلی:

134131




کدهای فرم اصلی:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comboBox1.Items.AddRange(new object[] { ".jpeg", ".bmp", ".gif", ".png" });

comboBox1.SelectedIndex = 0;
}

private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "jpg files (*.jpg)|*.jpg|jpeg files (*.jpeg)|*.jpeg|BMP files (*.bmp)|*.bmp|gif files (*.gif)|*.gif|png files (*.png)|*.png";
dialog.InitialDirectory = @"C:\";
dialog.Title = "انتخاب عکس";
if (dialog.ShowDialog() == DialogResult.OK && dialog.FileName != "")
{
pictureBox1.Load(dialog.FileName);
textBox1.Text = dialog.SafeFileName.Substring(0, dialog.SafeFileName.IndexOf('.'));
comboBox1.Text = dialog.SafeFileName.Substring(dialog.SafeFileName. IndexOf('.'));
}
}

private void button2_Click(object sender, EventArgs e)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
string path;

dialog.ShowDialog();

if (dialog.SelectedPath != "")
{
path = dialog.SelectedPath;

System.Drawing.Imaging.ImageFormat imageFormat;

switch (comboBox1.Text)
{
case ".jpg":
imageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
break;
case ".jpeg":
case ".bmp":
imageFormat = System.Drawing.Imaging.ImageFormat.Bmp;
break;
case ".gif":
imageFormat = System.Drawing.Imaging.ImageFormat.Gif;
break;
case ".png":
imageFormat = System.Drawing.Imaging.ImageFormat.Png;
break;
default:
throw new NotSupportedException("فرمت انتخاب شده پشتیبانی نمیشود");
}

try
{
pictureBox1.Image.Save(path + "\\" + (textBox1.Text == "" ? "000001" : textBox1.Text) + comboBox1.Text, imageFormat);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
}


اگر باز هم جواب دلخواهتون رو نگرفتید، کدهایی که برای ذخیره عکس استفاده میکنید رو قرار بدید. تا بررسی بشه. و بهتر راهنمایی بشید.

134130
نوشته شده با VS 2015 و دات نت 3

موفق باشید.

csprog
سه شنبه 20 مرداد 1394, 01:11 صبح
سلام ممنون از راهنمایی شما. کدها رو کامل کپی و اجرا کردم ولی باز هم همون خطا رو برمی گردونه

A generic error occurred in GDI+

ژیار رحیمی
سه شنبه 20 مرداد 1394, 01:54 صبح
سلام من کد شما رو تست کردم مشکلی نداره فقط من تو قسمت switch کیس رو اینصورت اصلاح کردم مشکلی نداشت

case ".jpeg":
case ".jpg":
imageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
break;

csprog
سه شنبه 20 مرداد 1394, 17:53 عصر
سلام برام جالب شده. من هم کدها رو کپی و اجرا کردم و هم خود سورس برنامه دوستمون
rg_BlackRose رو دانلود و اجرا کردم در هردو تاش مثل برنامه خودم همین خطای قبلی رو داد:گیج:

alexmcse
دوشنبه 14 دی 1394, 20:16 عصر
سلام برام جالب شده. من هم کدها رو کپی و اجرا کردم و هم خود سورس برنامه دوستمون
rg_BlackRose رو دانلود و اجرا کردم در هردو تاش مثل برنامه خودم همین خطای قبلی رو داد:گیج:




سلام
شاید مشکل از ویژوال باشد

برنامه ویژوال را آنیستال کنید و دو مرتبه آن را نصب کنید