PDA

View Full Version : سوال: استخراج اطلاعات HSB توسط lockbits



m_azari16
شنبه 11 اردیبهشت 1389, 09:35 صبح
سلام کسی می دونه چطوری می شه hsb رو با lockbits گرفت

mehdi.mousavi
شنبه 11 اردیبهشت 1389, 13:37 عصر
سلام کسی می دونه چطوری می شه hsb رو با lockbits گرفت

سلام.
سوال قبلی رو پس چرا پاک کردید؟ اینو می تونستید تو همون تاپیک مطرح کنید. در هر حال، متوجه نمیشم چرا با این lockbits مشکل دارید... کافیه تا رنگ مورد نظر رو از Bitmap بگیرید، سپس با استفاده از متودهای GetHue، GetSaturation و GetBrightness (که روی کلاس Color قرار دارن) به HSB مورد نظر برسید.

موفق باشید.

m_azari16
شنبه 11 اردیبهشت 1389, 19:35 عصر
دوست عزیز
میدونم که باید از این متد ها استفاده کنم ولی چیزی که نمی دونم اینه که چطوری از این متد ها برای lockbits استفاده کنم فکرکنم این متد ها برای متغیر color استفاده میشه. حالا چطوری از یک آرایه که از نوع دیگه ای است این اطلاعات رو بگیرم. البته باید یه راهی باشه که بشه rgb یه color رو مقدار دهی کرد ولی تمام متد های color اطلاعات می دهند و متدی برای تغییر rgb وجود نداشت اگه نه مشکلم حل می شد.
با تشکر

mehdi.mousavi
یک شنبه 12 اردیبهشت 1389, 12:17 عصر
دوست عزیز میدونم که باید از این متد ها استفاده کنم ولی چیزی که نمی دونم اینه که چطوری از این متد ها برای lockbits استفاده کنم فکرکنم این متد ها برای متغیر color استفاده میشه. حالا چطوری از یک آرایه که از نوع دیگه ای است این اطلاعات رو بگیرم. البته باید یه راهی باشه که بشه rgb یه color رو مقدار دهی کرد ولی تمام متد های color اطلاعات می دهند و متدی برای تغییر rgb وجود نداشت اگه نه مشکلم حل می شد.
با تشکر

سلام.
بالاخره با این جمله ای که نوشتید متوجه شدم که از ساختار فایلهای Bitmap بی اطلاعید و همین مساله شما رو در واقع سر در گم کرده. آرایه ای که شما ازش یاد کردید، در حقیقت مقادیر RGB هستش. برای اینکه با این آرایه (و در نتیجه اطلاعات درون اون) آشنا بشید، می تونید به این سایت (http://en.wikipedia.org/wiki/BMP_file_format) رجوع کنید.

اون آرایه، RGB تک تک نقاط تصویر رو در اختیارتون قرار میده. می تونید این آرایه رو بگیرید، هر تغییری دلتون خواست روش اعمال کنید (که منجر به تغییر رنگ، HSB و ... در تصویر میشه) و در نهایت، درست همانند مثالی که لینکش رو بهتون دادم، مجددا روی Bitmap اعمال کنید.

برای اینکه از یک RGB به یک Instance از Color برسید نیز می تونید از متود FromArgb روی Color استفاده کنید. امیدوارم این بار مشکلتون حل بشه.

موفق باشید.

m_azari16
دوشنبه 13 اردیبهشت 1389, 01:05 صبح
سلام
دوست عزیز ممنون
من می دونم که این آرایه اطلاعات رو به صورت زیر در برداره
p(1,1)r, p(1,1)g, p(1,1)b, p(1,2)r, p(1,2)g, p(1,2)b, p(2,1)r, p(2,1)g, p(2,1)b, p(2,2)r, p(2,2)g, p(2,2)b

اما مشکل من اینه که چطوری از این اعداد hsb بگیرم
من راهی پیدا نکردم که متغیر color رو مقدار دهی کنم و بعد از اون hsbرو بگیرم
اما ممنون شما به من fromargb رو معرفی کردی