Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: GetPixel & SetPixel Добавлено: 28.12.08 11:56  

Автор вопроса:  @lex
Подскажите как можно ускорить код)
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Sub Command1_Click()
Dim D, X, Y, C As Long
D = GetWindowDC(GetDesktopWindow)
For X = 1 To Screen.Width / 15
    For Y = 1 To Screen.Height / 15
    SetPixel D, X, Y, 16777215 - GetPixel(D, X, Y)
    Next Y
Next X
End Sub

VB или VB.NET) Не принципиально)

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

Номер ответа: 1
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #1 Добавлено: 28.12.08 12:13
  1. Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
  2. Private Declare Function GetDesktopWindow Lib "user32" () As Long
  3. Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
  4. Private Const SRCCOPY = &HCC0020
  5. Private Const SRCINVERT = &H660046
  6. Private Sub Command1_Click()
  7. D = GetWindowDC(GetDesktopWindow)
  8. BitBlt D, 0, 0, Screen.Width / 15, Screen.Height / 15, D, 0, 0, SRCINVERT ' <<---
  9. End Sub

BitBlt D, 0, 0, Screen.Width / 15, Screen.Height / 15, D, 0, 0, SRCINVERT это то что нужно, но почему-то выдает просто черный цвет((
Хотя BitBlt D, 0, 0, Screen.Width / 15, Screen.Height / 15, D, 0, 0, SRCCOPY прекрасно работает)
Номер ответа: 2
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #2 Добавлено: 28.12.08 12:16
Или SRCINVERT делает не то что я подумал, и мне надо идти убится апстену?)
Номер ответа: 3
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #3 Добавлено: 28.12.08 12:19
Угу) То что я подумал делает DSTINVERT ))
Всем спасибо :-D:-D
Тему можно закрывать)))))

Страница: 1 |

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



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