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

 

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

Google       Google       10. 11. 2005       8 966×

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. ..

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 Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

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í.

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