PDA

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



seven7777777
چهارشنبه 02 اردیبهشت 1388, 23:03 عصر
دوستان سلام

چطور میشه یه عکسی که تو برنامه باز کردیم و در یک PictureBox قرار دادیم ، تو یه جای سیستم ذخیره کنیم ؟

آیا راهی هست که سایز عکس رو تغییر بدیم و بعد ذخیره کنیم ؟

SMRAH1
چهارشنبه 02 اردیبهشت 1388, 23:33 عصر
سلام

با PictureBox.Image می تونی به عکس دسترسی داشته باشی .بعد عکس رو با متد Image.Save می تونی به هر فرمتی که دلت خواست ذخیره کنی.اگر هم می خواهی اون رو تغییر اندازه بدی،بهتره ابتدا یک تصویر (Image) دیگه با ابعاد مورد نظرت ایجاد کنی و بعد عکس اصلی رو روی اون ترسیم کنی و عکس دوم رو ذخیره کنی (برای این مورد دوم مثال های زیادی توی سایت هست).

موفق باشی

egoldashraf
پنج شنبه 03 اردیبهشت 1388, 01:02 صبح
توی پست های جناب استاد nazaninam این تکه کد برای تغییر سایز موجوده :


public static Image GetSmallImage(Image baseImage, int maxWidth, int maxHeight)
{
double imgHeight;

double imgWidth;

imgHeight = baseImage.Height;

imgWidth = baseImage.Width;

if (imgWidth > maxWidth | imgHeight > maxHeight)
{
double deltaWidth = imgWidth - maxWidth;

double deltaHeight = imgHeight - maxHeight;

double scaleFactor;

if (deltaHeight > deltaWidth)

scaleFactor = maxHeight / imgHeight;

else

scaleFactor = maxWidth / imgWidth;

imgWidth = imgWidth * scaleFactor;

imgHeight = imgHeight * scaleFactor;
}

Bitmap bmPhoto = new Bitmap(Convert.ToInt32(imgWidth), Convert.ToInt32(imgHeight), PixelFormat.Format24bppRgb);

bmPhoto.SetResolution(72, 72);

Graphics grPhoto = Graphics.FromImage(bmPhoto);

grPhoto.SmoothingMode = SmoothingMode.HighQuality;

grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic;

grPhoto.PixelOffsetMode = PixelOffsetMode.HighQuality;

grPhoto.DrawImage(baseImage, new Rectangle(0, 0, Convert.ToInt32(imgWidth), Convert.ToInt32(imgHeight)), 0, 0, baseImage.Width, baseImage.Height, GraphicsUnit.Pixel);

return bmPhoto;
}

protected static bool ThumbnailCallBack()
{
return false;
}

Davood_amega
سه شنبه 08 اردیبهشت 1388, 16:17 عصر
میتونید با استفاده از Setting ها اینکار را انجام دهید


file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.gif setting ها امكان انتخاب يك سري از موارد اختياري در سيستم را،به کاربر می دهد مانند:
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.gif رنگ پس زمينه فرم ها
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.gif انتخاب نوع فونت
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.gif سايز فونت استفاده شده در برنامه
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.gif اندازه فرم ها
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.gif …
در پنجره Solution راست کلیک روی پروژه وبعد از آن properties و در تبهای کناری Setting را انتخاب کن

mjfakhr
یک شنبه 03 خرداد 1388, 13:41 عصر
سلام
من می خوام تصویر موجود در Picture box روی فرم برنامه رو در یکی از درایوهای سیستم ذخیره کنم و از دستور زیر استفاده کردم :

picturebox1.Image.Save("C:\Temp.jpg")

ولی خطایی با متن زیر دریافت می کنم :

A generic error occurred in GDI+.

لطفا راهنمایی کنید باید چکار کنم

esmaeily-hosein
یک شنبه 03 خرداد 1388, 15:16 عصر
A generic error occurred in GDI
عکست در قسمت دیگه ای از حافظه باز شده و ابتدا باید آن برابر null شود .
در بیشتر مواقع GC.Collect() باعث برطرف شدن این خطا میشه .