Práca s grafikou III. - Svetlosť obrázku
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Práca s grafikou III. - Svetlosť obrázkuPráca s grafikou III. - Svetlosť obrázku

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

Práca s grafikou III. - Svetlosť obrázku

Google       Google       10. 11. 2005       8 020×

Svetlosť obrázku sa po anglicky povie brightness a tento filter by určite nemal chýbať v dobrom grafickom editore. V tomto článku si povieme, ako na vlastnú funkciu brightness. ..

Reklama
Reklama

Naša funkcia by mala pracovať s dvoma parametramy. Prvým by bol obrázok, ktorý budeme meniť a druhým svetlosť obrázku v percentách. Funkcia bude pracovať tak, že sa ku každej zložke pixelu (RGB zložky) pripočíta hodnota, ktorá sa bude počítať podľa nasledovného vzorca:


((255 / 100) * (percenta - 50) * 2)

Keď nastavíme svetlosť obrázku na 0%, ku každej zložke pixelu sa pripočíta hodnota -255, to znamená, že celý obrazok bude čierny. Keď nastavíme svetlosť obrázku napríklad na 60%, hodnota ktorá sa pripočíta ku každej zložke pixelu bude 51.

Táto hodnota je vždy konštantná, preto si ju vypočítame na začiatku funkcie a zapíšeme do nejakej premennej. Na koniec funkcie pridáme ešte podmienky:


If r > 255 Then r = 255
If r < 0 Then r = 0
If b > 255 Then b = 255
If b < 0 Then b = 0
If g > 255 Then g = 255
If g < 0 Then g = 0

Tieto podmienky slúžia na to, aby sa do zložky pixelu nezapísala hodnota väčšia ako 255 alebo menšia ako 0. Celá funkcia bude vyzerať takto:


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 GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long

Public Function Brightness(Obrazok As Object, percenta As Integer)

Dim X, Y As Long
Dim color As Long
Dim r As Integer
Dim g As Integer
Dim b As Integer
Dim buf As Double

On Error Resume Next

buf = ((255 / 100) * (percenta - 50) * 2)
For X = 0 To (Obrazok.ScaleWidth / 15) - 1
For Y = 0 To (Obrazok.ScaleHeight / 15) - 1
color = GetPixel(Obrazok.hdc, X, Y)
r = color Mod 256
g = (color  256) Mod 256
b = color  256  256
r = buf + r
g = buf + g
b = buf + b
If r > 255 Then r = 255
If r < 0 Then r = 0
If b > 255 Then b = 255
If b < 0 Then b = 0
If g > 255 Then g = 255
If g < 0 Then g = 0
color = RGB(r, g, b)
SetPixel Obrazok.hdc, X, Y, color
Next Y
DoEvents
Next X

Obrazok.Refresh
End Function

Na záver pridávam ešte zdroják, ktorý si môžete stiahnuť tu.

V ďalšom článku by som chcel podrobne popísať súborový formát BMP, ako aj vlastné funkcie na otvorenie a uloženie BMP súborov.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje ve VB, mezi jeho další koníčky patří fyzika a matematika.

Nové články

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Reklama
Reklama
Obrázek ke článku Konference: Moderní informační systémy podporují automatizaci

Konference: Moderní informační systémy podporují automatizaci

Současná situace v šíření onemocnění Covid-19 klade na řadu firem nové nároky a mnohé z nich jsou nyní více než kdy jindy závislé na nejmodernějších informačních technologiích. Proto i v oblasti podnikových informačních systémů vidíme rostoucí důraz na automatizaci nebo na důslednou integraci. Také o těchto trendech se bude mluvit na konferenci Firemní informační systémy, která se koná 24.9.2020 v pražském Kongresovém centru Vavruška na Karlově náměstí.

Obrázek ke článku Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Nebezpečí ukrytá v USB: z nuly na škvarek za pět sekund

Za cenu šesti dolarů lze celkem bez obtíží koupit nový, líbivě vyhlížející flash disk. Přidaná hodnota, které se vám spolu s ním dostane, už tak moc líbivá není. To, co se před pár sekundami tvářilo jako externí disk, se po připojení k počítači změní v důmyslné elektrické křeslo, které vaše zařízení v onen příslovečný škvarek promění za pár sekund. Cílovou skupinou pro koupi takových zařízení by mohli být záškodníci, kteří by tímto způsobem osnovali pomstu třeba vůči záletnému partnerovi. 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý