تور لحظه آخری
امروز : پنجشنبه ، 29 شهریور 1403    احادیث و روایات:  امام علی (ع):آگاه باشيد كه دانش آينده، اخبار گذشته و درمان دردهايتان و نظم ميان شما در قرآن است. ...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

تریدینگ ویو

لمینت دندان

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

طراحی کاتالوگ فوری

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

وکیل کرج

خرید تیشرت مردانه

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ابزار دقیق

خرید ریبون

موسسه خیریه

خرید سی پی کالاف

واردات از چین

دستگاه تصفیه آب صنعتی

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

خرید نهال سیب سبز

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

دیوار سبز

irspeedy

درج اگهی ویژه

ماشین سازان

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

شات آف ولو

تله بخار

شیر برقی گاز

شیر برقی گاز

خرید کتاب رمان انگلیسی

زانوبند زاپیامکس

بهترین کف کاذب چوبی

پاد یکبار مصرف

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

بلیط هواپیما

 






آمار وبسایت

 تعداد کل بازدیدها : 1816781099




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

دسترسی به پیکسل های فرم -


واضح آرشیو وب فارسی:سایت ریسک: دسترسی به پیکسل های فرم abasfar 07 اسفند 1389, 13:41سلام من میخوام به پیکسلهای فرم c# دسترسی داشته باشم چون یک شکل کشیدم حالا میخوام اونا با اضافه کردن هدر به صورت bmp ذخیره کنم the_king 07 اسفند 1389, 19:04سلام من میخوام به پیکسلهای فرم c# دسترسی داشته باشم چون یک شکل کشیدم حالا میخوام اونا با اضافه کردن هدر به صورت bmp ذخیره کنم شما می توانید یک حافظه bitmap ایجاد کنید، یک عکس از صفحه فرم گرفته و در اون bitmap کپی کنید و بعد با توابعی مثل (bitmap.GetPixel(x,y رنگ نقاط اون رو بخونید. مثلا با کد زیر حافظه bitmap ای ایجاد می کنیم و تصویر فرم فعلی را در آن قرار می دهیم : Graphics myGraphics = this.CreateGraphics(); Bitmap bitmap = new Bitmap(ClientSize.Width, ClientSize.Height, myGraphics); Graphics memoryGraphics = Graphics.FromImage(bitmap); Point point = PointToScreen(new Point(0, 0)); Application.DoEvents(); memoryGraphics.CopyFromScreen(point.X, point.Y, 0, 0, ClientSize); و مثلا رنگ نقطه (0,0) را بخوانید : Color c = bitmap.GetPixel(0, 0); حتی می توانید آن bitmap را به یک image تبدیل کرده تا در یک PictureBox ذخیره کرده و یا در فایلی Save کنید. Image image = (Image)bitmap; abasfar 07 اسفند 1389, 23:24ممنون فقط میشه یک روش دیگه هم بگید من میخوام مثلا باشی دیگه مثل graphic دسترسی پیدا کنم the_king 08 اسفند 1389, 03:02ممنون فقط میشه یک روش دیگه هم بگید من میخوام مثلا باشی دیگه مثل graphic دسترسی پیدا کنم شما یک نگاهی به توابع و متد های کلاس Graphics بندازید، ببینید بجز رسم گرافیکی چیزی داره که بخواهید رنگ نقطه ای رو بخونید، نداره که. هر نوع کلاس ای قابلیت ها و خواص مربوط به خودش رو داره، GetPixel جزئی از کلاس Bitmap است که یک حافظه تصویری است، تو کلاس های دیگه که همچین چیزی وجود نداره. Image هم داخلش یک Bitmap وجود داره که البته مستقیما قابل دسترسی نیست و باید ابتدا به Bitmap تبدیل بشه. Graphics حافظه Bitmap نداره که رنگ نقطه هاشو بخوانید، Graphics به یک Device Context متصل میشه تا بتونه انواع ترسیم های گرافیکی رو رویش انجام بده، خودش حافظه تصویری نداره. abasfar 08 اسفند 1389, 10:28ممنون از جواب شما اما من میخواستم رنگ نکته نکته فرم را بدست بیارم و بعدش هدر را اضافه کننم و بعد خودم bmp را بسازم که با این روش نشد بازم ممنون the_king 08 اسفند 1389, 20:00ممنون از جواب شما اما من میخواستم رنگ نکته نکته فرم را بدست بیارم و بعدش هدر را اضافه کننم و بعد خودم bmp را بسازم که با این روش نشد بازم ممنون شما می توانید از همون روشی که قبلا نوشتم رنگ هر نقطه یا نقاطی رو روی فرم بدست بیاورید، بعد هم جداول BITMAPFILEHEADER و BITMAPINFOHEADER (یا BITMAP) رو در فایل بنویسید و در انتها داده نقاط بدست آمده رو هم به فایل اضافه کنید. دو تا پیشنهاد دارم : 1) یا بعد از ایجاد کردن bitmap از دو حلقه تو در توی for (یکی برای x و یکی برای y) همان تابع ()GetPixel استفاده کنید. 2) یا بعد از ایجاد کردن bitmap کل نقاط رو یکجا داخل یک آرایه انتقال بدهید. برای اینکار هم تابع ()LockBits و پارامتر Scan0 موجود در کلاس Bitmap بکار میره. فقط یادتون باشه که در تصاویر BMP داده پیکسل ها پایین به بالا درج میشه، نه بالا به پایین. و همچنین طول داده های هر سطر (بر حسب بایت) باید مضربی از 4 باشه، اگر در چنین نبود باید با اضافه کردن بایت های 0 اضافی مضربی از 4 بشه. یعنی فرضا اگه هر پیکسل 3 بایت RGB باشه و در هر سطر 7 پیکسل داشته باشیم، 3 * 7 بایت میشه 21 که مضربی از 4 نیست، پس در انتهای داده های هر سطر 3 بایت اضافه درج می کنیم تا طول هر سطر بر حسب بایت 24 بشه. ساده ترین کار اینه که بجای فرمت RGB سه بایتی از RGBA چهار بایتی استفاده کنید، اینطوری هر پیکسل 4 بایت طول داره و همیشه طول داده های هر سطر مضربی از 4 خواهد بود و نیازی به هیچ بایت اضافی نیست. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 243]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن