PDA

View Full Version : حرفه ای: نحوه یافتن رنگ نقطه زیر موس



omid-vbAuto
دوشنبه 04 مهر 1390, 13:59 عصر
با سلام

ما چطوری می تونیم رنگ مورد نظر زیر موس رو بدست بیاریم؟

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

با تشکر

omid-vbAuto
سه شنبه 05 مهر 1390, 21:25 عصر
کسی در این مورد اطلاعاتی نداره؟

corona
چهارشنبه 06 مهر 1390, 21:12 عصر
دوست عزیز یک روش اینه که بیای از صفحه یک عکس بگیری توی یک بیتمپ سیو کنی بعد مختصات کرسر رو با کلاس cursor بگیری و توی اون فایل بیتمپ رنگ واقع در مختصات کرسر رو بدست بیاری خیلی روش کار سادس:


Function MakeScreenShot() As Drawing.Bitmap
Dim out As Drawing.Bitmap

'Get the screen Size
Dim bounds As Rectangle = Screen.GetBounds(Point.Empty)

'create the bitmap
out = New Drawing.Bitmap(bounds.Width, bounds.Height)

'create a graphic object to recive the pic
Using gr As Drawing.Graphics = Graphics.FromImage(out)
'Copy the screen using built in API
gr.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size)
End Using

Return out
End Function

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim BM As Drawing.Bitmap = MakeScreenShot()
Dim mouseloc As Point = Cursor.Position
Dim c As Color = BM.GetPixel(mouseloc.X, mouseloc.Y) ' The Slowest way possable to read a color

Debug.Print(c.R & "," & c.G & "," & c.B)
End Sub



موفق باشی.

omid-vbAuto
چهارشنبه 06 مهر 1390, 22:21 عصر
دوست عزیز یک روش اینه که بیای از صفحه یک عکس بگیری توی یک بیتمپ سیو کنی بعد مختصات کرسر رو با کلاس cursor بگیری و توی اون فایل بیتمپ رنگ واقع در مختصات کرسر رو بدست بیاری خیلی روش کار سادس:


Function MakeScreenShot() As Drawing.Bitmap
Dim out As Drawing.Bitmap

'Get the screen Size
Dim bounds As Rectangle = Screen.GetBounds(Point.Empty)

'create the bitmap
out = New Drawing.Bitmap(bounds.Width, bounds.Height)

'create a graphic object to recive the pic
Using gr As Drawing.Graphics = Graphics.FromImage(out)
'Copy the screen using built in API
gr.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size)
End Using

Return out
End Function

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim BM As Drawing.Bitmap = MakeScreenShot()
Dim mouseloc As Point = Cursor.Position
Dim c As Color = BM.GetPixel(mouseloc.X, mouseloc.Y) ' The Slowest way possable to read a color

Debug.Print(c.R & "," & c.G & "," & c.B)
End Sub



موفق باشی.


همه این هائی رو که فرمودین رو خودتون انجام دادین؟ اگه ممکنه نمونه برنامه بدین.

در ضمن فکر کنم سوالمو خوب متوجه نشدین من می خوام رنگ زیری حرکت موس در فرمم رو بدست بیارم نه رنگ یه عکس و ... رو.

ArashRoshan
جمعه 08 مهر 1390, 13:43 عصر
سلام
داخل رویداد MouseMove هر کنترل در صفحه کد زیر رو اضافه کنید :


Dim pt AsNewPoint(e.X, e.Y)

Using bmp AsNewBitmap(1, 1)

Using g AsGraphics = Graphics.FromImage(bmp)

g.CopyFromScreen(pt,Point.Empty, NewSize(1, 1))

Me.Text = bmp.GetPixel(0, 0).ToString
EndUsing
EndUsing

corona
جمعه 08 مهر 1390, 16:34 عصر
همه این هائی رو که فرمودین رو خودتون انجام دادین؟ اگه ممکنه نمونه برنامه بدین.

در ضمن فکر کنم سوالمو خوب متوجه نشدین من می خوام رنگ زیری حرکت موس در فرمم رو بدست بیارم نه رنگ یه عکس و ... رو.

بله دوست عزیز من کاملاً منظور شما رو فهمیدم ولی متاسفانه شما هستید که منظور من و کدی که نوشتم رو نفهمیدید خودم کاملاً تست کردم و دقیقاً همون چیزیه که میخوای. ادم رو دلسرد میکنید وقتی بدون توجه به کد یک کامنت الکی میزاری

omid-vbAuto
جمعه 08 مهر 1390, 20:28 عصر
بله دوست عزیز من کاملاً منظور شما رو فهمیدم ولی متاسفانه شما هستید که منظور من و کدی که نوشتم رو نفهمیدید خودم کاملاً تست کردم و دقیقاً همون چیزیه که میخوای. ادم رو دلسرد میکنید وقتی بدون توجه به کد یک کامنت الکی میزاری

دلسردی نداره که!!!

شما های کلاسی یه نمونه برنامه از کدی که نوشتی برا دانلود بگذارین.در ضمن من منظورتون رو متوجه شده بودم.شما پیاز داغشو زیاد کردی! دنیا دو روزه سخت نگیر داداشی:بوس:

omid-vbAuto
جمعه 08 مهر 1390, 20:38 عصر
سلام
داخل رویداد MouseMove هر کنترل در صفحه کد زیر رو اضافه کنید :


Dim pt AsNewPoint(e.X, e.Y)

Using bmp AsNewBitmap(1, 1)

Using g AsGraphics = Graphics.FromImage(bmp)

g.CopyFromScreen(pt,Point.Empty, NewSize(1, 1))

Me.Text = bmp.GetPixel(0, 0).ToString
EndUsing
EndUsing



با سلام

مهندس من کدتون رو امتحان کردم فکر کنم ایراد داره


من تو رویداد موس مو این کد رو ریختم با اینکه رنگ فرمم ثابت و یکنواخت بود ولی با تغییر اشاره گر موس از جایی به جای دیگه شماره رنگی که می دد تغییر می کرد که نبایید این اتفاق می افتاد.