FreeBasic
Главная
Вход
Регистрация
Суббота, 20.04.2024, 16:30Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Freebasic » Вопросы по языку FreeBasic » регулировка яркости или баг?
регулировка яркости или баг?
ПавелДата: Вторник, 28.05.2013, 16:53 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 21
Репутация: 0
Статус: Offline
Код
#Include "fbgfx.bi"
Using FB

Screen 17,32

Dim As Any Ptr img = ImageCreate(200,200)
Dim As Ubyte ptr p
ImageInfo img,,,,,p

Line img,-(99,99),&hff,BF
Line img,(100,100)-(200,200),&hff00,BF
Line img,(100,0)-(200,99),&hffFF,BF
Line img,(0,100)-(99,200),&hff0000,BF

Put(0,0),img
Sleep(1000)

Do
  Cls
  ScreenLock
  For y As Integer = 0 To 200*200*4-1 Step 4
   p[y] += 1
  Next
  Put(0,0),img
  ScreenUnLock
  Sleep(10)
Loop Until MultiKey(SC_ESCAPE)


почему два правых квадрата имеют один цвет? вроде как должны быть разного.
 
haavДата: Вторник, 28.05.2013, 18:39 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Погонял код. Хрен знает biggrin , может и баг. Надо задать вопрос на оф. сайте. P.S. Хотя яркость лучше регулировать значением ALPHA .

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
ПавелДата: Вторник, 28.05.2013, 21:19 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 21
Репутация: 0
Статус: Offline
эксеперементирую дальше с пикселями вот что вышло

Код
#Include "fbgfx.bi"
Using FB

Screen 17,32

Dim As Any Ptr img = ImageCreate(200,200)
Dim As UByte Ptr p
ImageInfo img,,,,,p

Line img,-(99,99),&hff,BF
Line img,(100,100)-(200,200),&hff00,BF
Line img,(100,0)-(200,99),&hffFF,BF
Line img,(0,100)-(99,200),&hff0000,BF

Put(0,0),img
Sleep(1000)

Do
   
  For x As Integer = 0 To 200*4-1 Step 4
   For y As Integer = 0 To 200-1
    If x>=200 And x<=600 And y>=50 And y<=150 Then
     p[x+800*y+3] += 4  
    ElseIf x>=300 And x<=500 And y>=10 And y<=35 Then
     p[x+800*y+2] += 4
     p[x+800*y+3] += 4
    Else
     p[x+800*y+3] = 255  
    EndIf
   Next
  Next  
  ScreenLock
  Cls
  Put(0,0),img,Alpha
  ScreenUnlock
  Sleep(50)
Loop Until MultiKey(SC_ESCAPE)
 
haavДата: Среда, 29.05.2013, 14:39 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Отписал я на оф. сайт. Если вкратце, то бага нет, есть только наше недопонимание biggrin .  Пиксели в памяти лежат в формате BBGGRRAA (то есть первый байт синий). Хотя я думал , что в RGBA либо ABGR (в памяти перевернуто), почему у меня тоже сдвиг по фазе произошел  biggrin .  А раз они так хитрожопо лежат , то получается вот что:

ff00 при +1 -> ff01
ffFF при +1 -> ff00

То есть оба зеленые, а для глаза ff01 и ff00 незаметно.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
ПавелДата: Четверг, 30.05.2013, 22:39 | Сообщение # 5
Сержант
Группа: Пользователи
Сообщений: 21
Репутация: 0
Статус: Offline
терь понятно
 
Форум » Freebasic » Вопросы по языку FreeBasic » регулировка яркости или баг?
  • Страница 1 из 1
  • 1
Поиск: