Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: определение цвета экрана в указанной точке Добавлено: 06.07.11 20:49  

Автор вопроса:  Алексей | ICQ: нету 

Ответить

  Ответы Всего ответов: 23  

Номер ответа: 16
Автор ответа:
 Алексей



ICQ: нету 

Вопросов: 6
Ответов: 42
 Профиль | | #16 Добавлено: 11.07.11 09:11
Каддафи М, своим одом ты мне щас мозг вынес. Ничё в нём не понял. Мне необходимо следующее: определение цвета на экране в определённой точке за пределами формы. аиболее понятно отбражает код ответа №5 что мне надо, но там выскакивает ошибка по крайней мере у меня. + ты говоришь обойтись без циклов.

Ответить

Номер ответа: 17
Автор ответа:
 Ким Чен Ир



Вопросов: 0
Ответов: 140
 Профиль | | #17 Добавлено: 11.07.11 09:53
Твой код в №5 просто умирает в бесконечном цикле.
Вот там есть процедура таймера.
С некой переодичностью, допустим один раз в секунду, в зависимости от установки таймера, твоя программа вызывает эту процедуру.
В ней ты определяешь позицию мыши по Y. Хорошо, хер с ним.
Конкретная позиция по X тебя не интересует. Тебя, интересует пятсот позиций по X. Ну, допустим, ты их получил и занес в некий массив.
И вот за эту вшивую секунду работы таймера, что ты хочешь сделать с пятью сотнями значений?
Запихнуть их все в текстбокс? Через запятую? И при дрожании мыши, через секунду, чтобы были уже другие 500 значений?
Или как-то по другому? Почему я должен делать предположения? Если тебе трудно самому сформулировать это на русском, то извини..

Ответить

Номер ответа: 18
Автор ответа:
 Алексей



ICQ: нету 

Вопросов: 6
Ответов: 42
 Профиль | | #18 Добавлено: 11.07.11 13:50
надо сравнить с другим цветом(изначально известным) и в случае совпадения запустить первый процесс. Это я сам могу прописать. То есть по сути тот код накрывается из за нехватки времени для обработки внутреннего кода?

Ответить

Номер ответа: 19
Автор ответа:
 Алексей



ICQ: нету 

Вопросов: 6
Ответов: 42
 Профиль | | #19 Добавлено: 11.07.11 14:00
И да мне дествительно надо проверить.. пох пусть 250 а не 500 значений цветов точек с координатами, по Y- мыши(кстати говоря вероятнее всего что координата У меняться не будет) и по Х- те самые 250 значений.

Ответить

Номер ответа: 20
Автор ответа:
 Алексей



ICQ: нету 

Вопросов: 6
Ответов: 42
 Профиль | | #20 Добавлено: 11.07.11 14:27
  1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  2.         Dim x, y As Integer
  3.         y = Cursor.Position.Y
  4.         For x = 100 To 350 Step 1
  5.             Dim cursorPoint As Point = New Point(x, y)
  6.             Dim bm As New Bitmap(1, 1)
  7.             Dim g As Graphics = Graphics.FromImage(bm)
  8.             g.CopyFromScreen(cursorPoint, New Point, New Size(1, 1))
  9.             Dim pixelColor As Color = bm.GetPixel(0, 0)
  10.             g.Dispose()
  11.             bm.Dispose()
  12.             If TextBox1.Text = "" Then
  13.                 TextBox1.Text = pixelColor.ToString
  14.             Else
  15.                 TextBox1.Text = TextBox1.Text + vbCrLf + pixelColor.ToString
  16.             End If
  17.         Next
  18.     End Sub

вот так всё работает. Спасибо всем кто помогал.

Ответить

Номер ответа: 21
Автор ответа:
 Алексей



ICQ: нету 

Вопросов: 6
Ответов: 42
 Профиль | | #21 Добавлено: 11.07.11 14:34
Только почему-то выводит в ARGB, даже при прописке
  1. Dim bm As New Bitmap(1, 1, Drawing.Imaging.PixelFormat.Format32bppRgb)
а не в заданном RGB ну да ладно.

Ответить

Номер ответа: 22
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #22 Добавлено: 11.07.11 17:31
Format32bppRgb это все равно ARGB, тебе, если вдуматься, нужен 24bpp

Ответить

Номер ответа: 23
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #23 Добавлено: 11.07.11 17:33
Но структура Color всегда будет содержать четыре параметра цвета, а ее ToString() будет выводить их все, так что бесполезно дергаться.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам