PDA

View Full Version : سوال: جدا كردن يك تكه از عكس



rashid1368
سه شنبه 08 بهمن 1387, 15:10 عصر
با سلام
آقايون عزيز
من قبلا هم اين سوال رو پرسيدم 2-3 روز پيش
براي اولين بار كسي جوابمو نداد
خيلي عجيب بود
يعني هيچ كي بلد نيست
چجوري مي شه يه قسمت از تصوير درون picbox رو بريد
ممنون مي شم اگه كسي بتونه جوابمو بده

Mehdi Asgari
سه شنبه 08 بهمن 1387, 16:31 عصر
عجیب نیست. سوالت مبهمه. دقیقا چی میخوای ؟ یه تیکه یعنی چی ؟ یعنی شکل یک انسان ؟ یعنی دایرۀ سفید وسط یه شکل سیاه ؟ یعنی قسمتی از شکل که مختصاتش رو به پیکسل یا درصد یا ... داریم ؟ آیا قراره کاربر با ماوس اون "تیکه" رو مشخص کنه ؟ (مثل نرم افزارهای ویرایش عکس) یا خودش این کارو می کنه و کاربر فقط مشخصات رو وارد می کنه؟ یا اصلا کاربر دخالتی نداره و بر حسب شرایطی برنامه اون "تیکه" رو محاسبه کرده و جدا می کنه ؟
منظورت اینه که قسمتی از عکس داخل PictureBox رو داشته باشیم (که مثلا بعدا در جایی ذخیره اش کنیم) ، یا نه اصلا میخوای تغییرات تو خود PictureBox اعمال بشه ؟ (یعنی اون تیکه هه حذف بشه از عکس موجود در PictureBox)
کاربردت چیه ؟
تا درست سوال نکنی جواب نمی گیری. هیچ کس حوصله و وقت نداره حدس بزنه تو چی میخوای و اون رو برات پست کنه ، بعدش بفهمه منظورت یه چیز دیگه بوده.

در ضمن تمام کاربران این فروم آقا نیستن. کلی هم خانم فعالیت می کنن در اینجا

rashid1368
چهارشنبه 09 بهمن 1387, 20:05 عصر
عجیب نیست. سوالت مبهمه. دقیقا چی میخوای ؟ یه تیکه یعنی چی ؟ یعنی شکل یک انسان ؟ یعنی دایرۀ سفید وسط یه شکل سیاه ؟ یعنی قسمتی از شکل که مختصاتش رو به پیکسل یا درصد یا ... داریم ؟ آیا قراره کاربر با ماوس اون "تیکه" رو مشخص کنه ؟ (مثل نرم افزارهای ویرایش عکس) یا خودش این کارو می کنه و کاربر فقط مشخصات رو وارد می کنه؟ یا اصلا کاربر دخالتی نداره و بر حسب شرایطی برنامه اون "تیکه" رو محاسبه کرده و جدا می کنه ؟
منظورت اینه که قسمتی از عکس داخل PictureBox رو داشته باشیم (که مثلا بعدا در جایی ذخیره اش کنیم) ، یا نه اصلا میخوای تغییرات تو خود PictureBox اعمال بشه ؟ (یعنی اون تیکه هه حذف بشه از عکس موجود در PictureBox)
کاربردت چیه ؟
تا درست سوال نکنی جواب نمی گیری. هیچ کس حوصله و وقت نداره حدس بزنه تو چی میخوای و اون رو برات پست کنه ، بعدش بفهمه منظورت یه چیز دیگه بوده.

در ضمن تمام کاربران این فروم آقا نیستن. کلی هم خانم فعالیت می کنن در اینجا
با سلام
خدمت همه شما آقايون و خانوم ها
از شما متشكرم به خاطر اين تذكراتتون
كاملا درست گفتيد
اما سوال من:
مي خواستم بدونم كه چجوري مي شه مثلا به اندازه 32* 32 پيكسل
از قسمت بالا و سمت چپ يا بالا و سمت راست عكس جدا نمود و اين قسمت رو توي بك picbox ديگه نشون داد
اميدوارم كسي احتياج نداشته باشه حدس بزنه در مورد اين كه سوالم و منظورم چي بوده

Mehdi Asgari
چهارشنبه 09 بهمن 1387, 23:47 عصر
اولین روشی که به ذهنم رسید:




Bitmap bmp = (Bitmap) pictureBox1.Image;
Bitmap new_bitmap = new Bitmap(32, 32);
for(int i = 0; i < 32; i++)
for (int j = 0; j < 32; j++)
{
new_bitmap.SetPixel(i, j, bmp.GetPixel(i, j));
}
pictureBox2.Image = new_bitmap;


احتمالا بهترین روش نیست. برای 32 پیکسل میتونی از همین روش استفاده کنی، اما برای عملیات پیچیده تر با عکس ها با تعداد پیکسل بالاتر ابتدا حافظه اش رو قفل کن (LockBits) بعدش با اشاره گر ها کارای مورد نظرت رو انجام بده
تست کن ، اگه اونی نبود که می خواستی یا سرعت بیشتر یا ... مد نظرت بود بگو

farzin.fz
پنج شنبه 10 بهمن 1387, 00:21 صبح
کد زیر را می توانید برای Crop کردن استفاده نمائید :



Image i = Image.FromFile("C:\\winter.jpg");
Bitmap b = (Bitmap)i;
Bitmap b_1= b.Clone(new Rectangle(0, 0, 200, 600), System.Drawing.Imaging.PixelFormat.Format24bppRgb );
pictureBox1.BackgroundImage = b_1;
this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
b_1.Save("C:\\r.jpg");




0و0محل را و 200و200 اندازه را نشان می دهند که بر حسب نیاز می توانید تغییر دهید .