PDA

نسخه کامل مشاهده نسخه کامل : استخراج كد رنگ (rgb) يك پيكسل از يك عكس؟



Honradez
09-10-2008, 08:51
سلام.

من چطوري ميتونم كد رنگ (rgb) يك پيكسل دلخواه از يك عكس را استخراج كنم؟

ممنون ميشم راهنمايي كنيد. :10:

تندرست باشيد و پاينده. :46:

Smafias
09-10-2008, 22:41
سلام!

از توابع API برای بدست آوردن رنگ یک پیکسل استفاده کنید.

تابع GetPixel:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
- این تابع رنگ یک پیکسل مشخص شده از یک (DC (Device Context را به صورت Long برمی گرداند.
- آرگومان اول hDC: هندل DC مورد نظر. مثال Picture1.hDC
- آرگومان دوم X: مختصات x پیکسل مورد نظر.
- آرگومان سوم Y: مختصات y پیکسل مورد نظر.
- خروجی تابع از نوع Long می باشد.

مثال:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همونطور که میدونید یه مرحله دیگه مونده تا به RGB برسیم -- چون خروجی از نوع Long هست و باید به RGB تبدیل شود.

برای بدست آوردن RGB از طریق Long من براتون سریعترین کد برای این کار رو معرفی میکنم -- که توسط Donald نوشته شده:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

نمونه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حالا متغیرهای B و G و R حاوی همان مقدارهای RGB می باشند.

امیدوارم که مشکل حل شده باشه.
موفق باشی :11:

Honradez
29-10-2008, 19:58
سلام!

از توابع API برای بدست آوردن رنگ یک پیکسل استفاده کنید.

تابع GetPixel:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
- این تابع رنگ یک پیکسل مشخص شده از یک (DC (Device Context را به صورت Long برمی گرداند.
- آرگومان اول hDC: هندل DC مورد نظر. مثال Picture1.hDC
- آرگومان دوم X: مختصات x پیکسل مورد نظر.
- آرگومان سوم Y: مختصات y پیکسل مورد نظر.
- خروجی تابع از نوع Long می باشد.

مثال:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همونطور که میدونید یه مرحله دیگه...
سلام.

خيلي ممنونم از جوابتون.

يك سوال دارم: اين "gdi32" و Picture1.hdc چي هستند و چيكارشون بايد كرد؟ (ببخشيد من خيلي مبتديم :46: )

تندرست باشيد. :10:

Honradez
31-10-2008, 11:02
چي شد پس؟ :31:

Smafias
01-11-2008, 23:30
سلام!

ببخشید چند روز نتونستم سر بزنم...

خوب! اول: gdi32 نام کتابخانه ای است که حاوی توابع گرافیکی است و برای استفاده از توابعش باید نام این بنده خدا رو ببریم :دی
(تابع getpixel یکی از توابع گرافیکی است که در کتابخانه gdi32 قرار داره)

دوم: Picture1.hDC رو که کامل توضیح دادم :دی ما با گرفتن hdc در حقیقت دستگیره ی محل نقش تصویر رو بدست میاریم (به زبان ساده گفتما) خوب اصولا وقتی میخوایم get pixel کنیم باید بگیم که کجا رو برای این کار میخوایم یعنی آدرس محل نقش تصویر رو بهش بدیم = hdc
وقتی میگیم picture1.hdc یعنی برو و رنگ رو از داخل کادر picture1 بردار! (دیگه چجوری بگم)
حال اگر بگوییم picture2.hdc از picture2 رنگ رو برمیداره.

ببخشید که بد توضیح میدم اگه متوجه نشدید بگید تا بازم براتون توضیح بدم.
قربونت برم پهلوون! :11: :دی