Есть такой код, читается картинка, попиксельно раскадывается на RGB. Затем для каждого пикселя увеличиваем Red, уменьшаем Green, увеличиваем Blue. Складываем цвета заново, формируем битмап в памяти и сохраняем его на диск. Все работает, но медленно, как можно ускорить работу этого кода?
- Код: Выделить всё
 #Compile Exe
#Dim All
#Include "win32api.inc"
Function PBMain () As Long
  Local hbmp As Dword
  Local hbmpwin As Dword
  Local x As Dword
  Local y As Dword
  Local rgbColor As Dword
  Local temp As String
  Local total_red As Long
  Local total_green As Long
  Local total_blue As Long
  Local New_Pixel As Dword
  Local hNewBmp As Dword
  Local i As Dword
  Local t As Dword
  Dim Clr(640,480) As Dword
  Graphic Bitmap Load "dragon_black.bmp", 640, 480 To hbmp
  Graphic Attach hbmp, 0
  Graphic Window "", 0, 0, 640, 480 To hbmpwin
  Graphic Attach hbmpwin, 0
  Graphic Copy hbmp, 0
  
   For i=1 To 640
      For t=1 To 480
       Graphic Get Pixel (i, t) To rgbColor
       Clr (i,t)= rgbColor
      Next t
   Next i
  Graphic Bitmap New 640, 480 To hNewBmp
  Graphic Attach hNewBmp, 0
   For i=1 To 640
      For t=1 To 480
       temp = Right$("000000000000000000000000" + Bin$(Clr (i,t)),24)
       total_red   = total_red   + Val("&B" + Mid$(temp,17,8))
       total_green = total_green + Val("&B" + Mid$(temp,9,8))
       total_blue  = total_blue  + Val("&B" + Mid$(temp,1,8))
       New_Pixel=RGB(total_red+10, total_green-10, total_blue+10)
       Graphic Set Pixel  (i, t ), New_Pixel
       total_red=0
       total_green=0
       total_blue=0
      Next t
  Next i
  Kill "new_dragon.bmp"
  Graphic Save "new_dragon.bmp"
End Function