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

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

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

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

Google       Google       10. 11. 2005       7 073×

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 Proč mají absolventi v IT přemrštěné očekávání, a je vůbec přemrštěné?

Proč mají absolventi v IT přemrštěné očekávání, a je vůbec přemrštěné?

Poměrně nedávno zveřejnil portál Platy.cz zajímavé statistiky, kde mladí počítačoví experti nastupují do firem s průměrnou mzdou cca 36 000 Kč, hned v závěsu je bankovní sektor se svými cca 31 000 Kč. Pro srovnání – v ostatních oborech se průměrná nástupní mzda pohybuje okolo 28 000 Kč. Nástupní platy jsou samozřejmě ovlivněny i lokalitou zaměstnavatele

Reklama
Reklama
Obrázek ke článku Zpětné sledování sportovních přenosů využívá v létě řada lidí.

Zpětné sledování sportovních přenosů využívá v létě řada lidí.

Červenec a srpen představují měsíce, kdy Češi nejčastěji jezdí na vícedenní dovolené. V této době však rovněž probíhá řada důležitých sportovních událostí, jako jsou olympijské hry nebo například právě odehrané fotbalové mistrovství světa. Míra promeškaných sportovních přenosů však klesá díky moderních technologiím a službám. 

Obrázek ke článku Průzkum JetBrains: JavaScript mezi programátory vede, Kotlin získává na popularitě

Průzkum JetBrains: JavaScript mezi programátory vede, Kotlin získává na popularitě

Společnost JetBrains, přední tvůrce softwarových nástrojů pro profesionální vývojáře s centrálou v Praze, představila výsledky průzkumu, který pomáhá lépe porozumět a získat vhled do pracovních návyků programátorů. Zjištění mohou být nápomocná nejen pro zvýšení efektivity, ale také pro vytvoření ideálního pracovního prostředí pro programátory.  

Obrázek ke článku Jsou Youtubeři jen pro mladé?

Jsou Youtubeři jen pro mladé?

Každá generace má své, a tak zatímco v šedesátkách si celý svět ujížděl na Beatles a v devadesátkách jsme všichni hrdě nosili šusťákovky, dnešnímu světu jednoznačně vládne jiný fenomén, a to jsou Youtubeři. Jedná se o jakési novodobé idoly, které jsou mladým blíže než celebrity z dob minulých. 

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