PDA

View Full Version : راهنمایی جهت ذخیره تصاویر ... !!



man_iran
جمعه 29 تیر 1386, 09:40 صبح
سلام به دوستان
من می خواستم برنامه ای بنویسم که بتونم به کمک آن عکس را ذخیره کنم برای همین هم یه openFileDialog قرار دادم و چندتا کد براش نوشتم که عکس را داخل یه پیکچرباکس بیاره که این کار را برای من انجام می ده.
حال می خوام این عکس را ذخیره کنم که از متد سیو خود پیکچرباکس استفاده کردم و سیو می کنه ولی اشکالش اینه که مکان سیو همون مکان خود فایل هست! یعنی از مسیری که اوردمش همون جا هم ذخیرش می کنه حال کدی می خواستم که مسیر را جای مشخص قرار دهد.
از SaveFileDialog هم نمی خوام استفاده کنم. با سی شارپ 2005 کار می کنم.
اگر ممکنه راهنمایی کنید (فوریه)!
ممنون.

Alireza_Salehi
جمعه 29 تیر 1386, 09:48 صبح
عکس رو با استفاده از متد FromFile کلاس Bitmap در یک شی از نوع Bitmap لود کنید بعد با متد Save همین کلاس هر جا خواستید ذخیره کنید.

man_iran
جمعه 29 تیر 1386, 10:48 صبح
عکس رو با استفاده از متد FromFile کلاس Bitmap در یک شی از نوع Bitmap لود کنید بعد با متد Save همین کلاس هر جا خواستید ذخیره کنید.

دوست عزیز بسیار ممنون از راهنماییتون.
فقط اگر ممکنه به صورت کد راهنمایی کنید چون من با این کلاس آشنا نیستم.
راستی آیا می شه روی پوشه ای که فایل ها را ذخیره می کنیم پسورد گذاشت؟ به چه صورت؟
ممنون می شم راهنمایی کنید.

hdv212
جمعه 29 تیر 1386, 11:16 صبح
از این کد استفاده کن :


using System.Drawing.Imaging;
.
.
.
Bitmap bmp = new Bitmap(this.pictureBox1.Image);
bmp.Save(@"c:\testPic.jpg", ImageFormat.Jpeg);

موفق باشید.

man_iran
جمعه 29 تیر 1386, 11:48 صبح
از این کد استفاده کن :


using System.Drawing.Imaging;
.
.
.
Bitmap bmp = new Bitmap(this.pictureBox1.Image);
bmp.Save(@"c:\testPic.jpg", ImageFormat.Jpeg);

موفق باشید.

ممنون
ولی من می خواستم داخل پوشه بین ذخیره بشه برای این کار هم لین کد رو نوشتم ولی جواب نداد باید چکار کنم ؟

Bitmap bmp = newBitmap(this.picBook.Image);
bmp.Save(@"Data Source =" + Application.StartupPath + "estPic.jpg", ImageFormat.Jpeg);

PC2st
جمعه 29 تیر 1386, 12:09 عصر
داخل پوشه بین ذخیره بشه
بجای Application.StartupPath از Application.ExecutablePath استفاده کنید.

man_iran
جمعه 29 تیر 1386, 18:32 عصر
بجای Application.StartupPath از Application.ExecutablePath استفاده کنید.

ممنون از راهنماییتون مشکل برطرف شد...
فقط دوست عزیز می تونید لطف کنید و فرق آنها را بنویسید؟
راستی چرا در هنگام سیو عکس نام پزوژه نیز اول نام عکس قرار می گیرد آیا می توان آن را از بین برد ؟

PC2st
دوشنبه 01 مرداد 1386, 20:06 عصر
ببخشید که اینقدر دیر جواب میدم، آخه ایمیلم رو الان چک کردم!
عذر میخوام بخاطر جواب بی ربطی که در پست قبلی دادم که شاید ناشی از یک سری اطلاعات غلط در گذشته بوده! امیدوارم دیگه تکرار نشه ::شرمنده:: ::شیطنت::


راستی چرا در هنگام سیو عکس نام پزوژه نیز اول نام عکس قرار می گیرد آیا می توان آن را از بین برد ؟
بله میشه از بین برد، به کمک ترکیبی از متد LastIndexOf (برای یافتن آخرین کاراکتر \ در مسیر) و متد Remove (برای حذف کاراکترهای بعد از علامت \)...

man_iran
دوشنبه 01 مرداد 1386, 21:01 عصر
عذر میخوام بخاطر جواب بی ربطی که در پست قبلی دادم...

خب دوست عزیز حالا من از چه کدی استفاده کنم که آن را در پوشه bin ذخیره کنه و نام پروژه هم اول آن نیات؟ راستی اگر یه پوشه داخل پوشه بین درست کنم و بعد بخوام آن را در آن پوشه ذخیره کنم آدرس به چه شکلی خواهد بود؟
ممنون می شم راهنمایی کنید.

PC2st
دوشنبه 01 مرداد 1386, 22:00 عصر
خب دوست عزیز حالا من از چه کدی استفاده کنم که آن را در پوشه bin ذخیره کنه و نام پروژه هم اول آن نیات؟

شما میخواهید در پوشه bin باشه اما در داخل پوشه bin\debug نباشه، (یعنی یک پوشه قبل تر). درسته؟ پس:


string binFolder = Application.StartupPath.Remove(Application.Startup Path.LastIndexOf('\\'));





راستی اگر یه پوشه داخل پوشه بین درست کنم و بعد بخوام آن را در آن پوشه ذخیره کنم آدرس به چه شکلی خواهد بود؟

بر اساس متغیر binFolder در حالت قبل:


string myPath = binFolder + @"\YourFolderName";

man_iran
سه شنبه 02 مرداد 1386, 11:21 صبح
ممنون.
خب حالا اگ بخوام عکس را با یه سایز مشخصی سیو کنم باید چه کار کنم؟

PC2st
سه شنبه 02 مرداد 1386, 18:48 عصر
برای تغییر اندازه تصاویر میشه از متد GetThumbnailImage استفاده کرد که بر طبق پیشنهاد MSDN، اگر میخواهید تصاویر بزرگ خود را تغییر اندازه دهید، بهتره از متد Graphics.DrawImage استفاده کنید چون با کیفیت مطلوبی این کار رو انجام میده.
برای استفاده از متد GetThumbnailImage، مثال زیر فکر کنم کافی باشه:


bool Nooo()
{
return false;
}

void ChangeSize()
{
Image image = Image.FromFile("OldImage.bmp");
image = image.GetThumbnailImage(400, 400, new Image.GetThumbnailImageAbort(Nooo), IntPtr.Zero);
image.Save("NewImage.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
}