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

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       6 219×

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 Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Delphi 10.1.2 (Berlin Update 2) – na co se můžeme těšit

Touto roční dobou, kdy je zem pokrytá barevným listím a prsty křehnou v mrazivých ránech, se obvykle těšíme na zbrusu novou verzi RAD Studia. Letos si však ale budeme muset počkat na Godzillu a Linux až do jara. Vezměme tedy za vděk alespoň updatem 2 a jelikož dle vyjádření pánů z Embarcadero se budou nové věci objevovat průběžně, pojďme se na to tedy podívat.

Reklama
Reklama
Obrázek ke článku Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Konference: Moderní datová centra pro byznys dneška se koná už 24. 11.

Stále rostoucí zájem o cloudové služby i maximální důraz na pružnost, spolehlivost a bezpečnost IT vedou k výrazným inovacím v datových centrech. V infrastruktuře datových center hraje stále významnější roli software a stále častěji se lze setkat s hybridními přístupy k jejich budování i provozu.

Obrázek ke článku Konference: Mobilní technologie mají velký potenciál pro byznys

Konference: Mobilní technologie mají velký potenciál pro byznys

Firmy by se podle analytiků společnosti Gartner měly  rychle přizpůsobit skutečnosti, že mobilní technologie už zdaleka nejsou horkou novinkou, ale standardní součástí byznysu. I přesto - nebo možná právě proto - tu nabízejí velký potenciál. Kde tedy jsou ty největší příležitosti? I tomu se bude věnovat již čtvrtý ročník úspěšné konference Mobilní řešení pro business.

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý