PDA

View Full Version : سوال: ذخیره نشدن فایل برای دومین بار



sobhan13
دوشنبه 08 دی 1393, 22:15 عصر
با سلام.
من با کد زیر یه تصویری رو سیو میکنم بعد لودش میکنم ولی برای دومین نمیشه و پیام A generic error occurred in GDI+. رو میده.

کد ذخیره:
pictureBox1.Image.Save(Application.StartupPath + @"\pic\1.jpg");



کد لود:

Bitmap myBmp = new Bitmap(Application.StartupPath + @"\pic\1.jpg");

if (Application.StartupPath + @"\pic\1.jpg".ToString() != "")
{
fname1 = Application.StartupPath + @"\pic\1.jpg".ToString();
}

sobhan13
پنج شنبه 18 دی 1393, 21:45 عصر
اینم تصویر ارور هست لطفا جواب بدید.
این برنامه طوری هست که باید بشه یه عکس رو به یک نام (مثلا a) ذخیره کنه بعد اونو لود کنه.
برای بار اول همه چی درست عمل میکنه اما موقع ذخیره عکس برای بار دوم این ارور رو میده.
127379

aminmousavi
جمعه 19 دی 1393, 01:01 صبح
سلام دوست عزیز .
فکر میکنم بخاطر این هست که عکس در حال استفاده هست (توسط برنامه خودتون) برای همین error میده

elec60
جمعه 19 دی 1393, 11:09 صبح
با سلام.
من با کد زیر یه تصویری رو سیو میکنم بعد لودش میکنم ولی برای دومین نمیشه و پیام A generic error occurred in GDI+. رو میده.

کد ذخیره:
pictureBox1.Image.Save(Application.StartupPath + @"\pic\1.jpg");



کد لود:

Bitmap myBmp = new Bitmap(Application.StartupPath + @"\pic\1.jpg");

if (Application.StartupPath + @"\pic\1.jpg".ToString() != "")
{
fname1 = Application.StartupPath + @"\pic\1.jpg".ToString();
}


اولا برای Save کردن تصویر حتما از اورلودی از متد Save استفاده کنین که فرمت رو هم بگیره، برای مثال از فرمت System.Drawing.Imaging.ImageFormat.Gif استفاده کنین.

ثانیا برای نمایش عکس سیو شده از متد e.Graphics.DrawImage استفاده کنین که e رو میتونین با استفاده از متد CreateGraphics کنترل PictureBox بسازین.

sobhan13
شنبه 20 دی 1393, 18:10 عصر
اولا برای Save کردن تصویر حتما از اورلودی از متد Save استفاده کنین که فرمت رو هم بگیره، برای مثال از فرمت System.Drawing.Imaging.ImageFormat.Gif استفاده کنین.

ثانیا برای نمایش عکس سیو شده از متد e.Graphics.DrawImage استفاده کنین که e رو میتونین با استفاده از متد CreateGraphics کنترل PictureBox بسازین.

خیلی ممنون از جوابتون ولی میشه واضح تر توضیح بدید؟؟؟

elec60
شنبه 20 دی 1393, 21:46 عصر
خیلی ممنون از جوابتون ولی میشه واضح تر توضیح بدید؟؟؟

منظور از اورلود یعنی مثلا: (pictureBox1.Image.Save("image.png", ImageFormat.Png

sobhan13
شنبه 20 دی 1393, 21:59 عصر
منظور از اورلود یعنی مثلا: (pictureBox1.Image.Save("image.png",ImageFormat.Png

انجام دادم نشد
مشکل تو قسمت دوم حرفتوون بود

مشکل اینکه برای بار دوم سیو نمیشه و ارور میده با dialog میشه حلش کرد ولی میخوام تو جا و اسمی که من براش تعیین کردم سیو بشه.

elec60
شنبه 20 دی 1393, 22:06 عصر
الان دسترسی به ویژوال استودیو ندارم، فردا انجام میدم براتون

میدونستم مشکلتون با این قسمت حل نمیشه، ولی کلا گفتم موقع سیو کردن حتما Format تصویر هم معین کنین و فقط به اسم فایلی که سیو میکنین قناعت نکنین، نمیشه که با عوض کردن Extension فایل فرمتش هم عوض بشه. اگه اینطور باشه یه عکس jpeg رو پسوندشو به png تبدیل میکنیم و تصویر میشه png. اینجوری کدینگ و مباحث CosinTransform و WaveLet کشک میشه!