Ajustați proprietățile culorii unei imagini utilizând ActionScript 3

În acest tutorial, vom învăța cum să folosim AS3 pentru a crea o RIA care poate modifica proprietățile de culoare ale unei imagini, cum ar fi Luminozitate, Contrast, Hue și Saturație. Citește mai departe!


Rezultatul final al rezultatelor

Să aruncăm o privire asupra rezultatului final pe care îl vom strădui:


Pasul 1: Prezentare succintă

Vom folosi o clasă ActionScript nativă, care va obține noi valori dintr-o componentă Slider și apoi să le aplicăm imaginii țintă utilizând clasa ColorMatrixFilter.


Pasul 2: Setări Flash Document

Lansați Flash și creați un nou document. Setați dimensiunea scenei la 557x400px, iar rata de cadre la 24fps.


Pasul 3: Interfața

Interfața va fi foarte simplă; doar o imagine în etapa care va fi apoi modificată de către Componentele de culisare din panoul de reglare a culorilor.


Pasul 4: Imagine demo

Vom avea nevoie de o imagine pentru a testa aplicația noastră, alegeți-o din colecția dvs. personală sau descărcați-o pentru testare.

Aceasta este imaginea din demo, obținută de la Flickr, cu o licență Creative Commons.

Flori de Antonio Manchado


Pasul 5: Numele instanțelor

Creați un panou și patru glisante cu nume de instanțe, după cum se vede în imaginea următoare:

Puteți adăuga bare peste glisiere așa cum se arată pentru a îmbunătăți aspectul.


Pasul 6: Valorile cursorului

Să setăm valorile componentelor Slider.

Acestea sunt obținute din valorile valide minime și maxime ale clasei AdjustColor, pe care o vom folosi pentru a regla fiecare proprietate:

  • brightSL: -100 la 100
  • contSL: -100 la 100
  • hueSL: -180 la 180
  • satSL: -100 la 100

Pasul 7: Noua clasă ActionScript

Creați o nouă clasă ActionScript 3.0 (Cmd + N) și salvați-o ca Main.as în dosarul dvs. de clasă.


Pasul 8: Structura clasei

Creați structura claselor de bază pentru a începe să scrieți codul.

> pachet import flash.display.Sprite; clasa publică principală extinde Sprite funcția publică Main (): void // code constructor

Pasul 9: Clasele necesare

Acestea sunt clasele pe care trebuie să le importăm pentru ca clasa noastră să funcționeze; import directiva face ca clasele și pachetele definite extern să fie disponibile pentru codul dvs..

 import flash.display.Sprite; import fl.motion.AdjustColor; import flash.filters.ColorMatrixFilter; import fl.events.SliderEvent;

Pasul 10: Variabile

Acestea sunt variabilele pe care le vom folosi; citiți comentariile din cod pentru a afla mai multe despre ele.

 var var color: AdjustColor = new AdjustColor (); // Acest obiect va păstra proprietățile de culoare private filtru var: ColorMatrixFilter; // Va stoca filtrul de culoare modificat pentru a schimba imaginea

Pasul 11: Constructorul

Constructorul este o funcție care rulează atunci când un obiect este creat dintr-o clasă; acest cod este primul care se execută atunci când faceți o instanță a unui obiect sau în acest caz se execută când SWF este încărcat, așa cum este în clasa de documente.

Acesta va efectua acțiunile necesare pentru a porni aplicația.

 funcția publică finală Main (): void // Code

Pasul 12: Matricea inițială

Matricea de culoare va fi generată de valorile stocate în proprietățile AdjustColor; trebuie să setăm valorile inițiale pentru aceste proprietăți pentru a obține o matrice corectă. Dacă nu facem acest lucru, se va genera o matrice cu valori nula.

 / * Necesar pentru a crea matricea inițială * / color.brightness = 0; color.contrast = 0; color.hue = 0; color.saturation = 0; / * Această funcție va adăuga ascultătorii necesari * / addListeners ();

Pasul 13: Adăugați ascultători de slider

Această funcție adaugă ascultătorilor componentele cursorului pentru a apela anumite funcții ori de câte ori se modifică valorile acestora.

 funcția finală privată addListeners (): void colorPanel.brightSL.addEventListener (SliderEvent.CHANGE, adjustBrightness); colorPanel.contSL.addEventListener (SliderEvent.CHANGE, reglațiContrast); colorPanel.hueSL.addEventListener (SliderEvent.CHANGE, adjustHue); colorPanel.satSL.addEventListener (SliderEvent.CHANGE, ajustareSaturație); 

Pasul 14: Luminozitate

Această funcție modifică valoarea luminozității, obținându-i datele de la brightSL elementul glisant.

 funcția finală privată adjustBrightness (e: SliderEvent): void color.brightness = e.target.value; Actualizați(); 

Pasul 15: Contrastul

Această funcție modifică valoarea Contrast, obținându-și datele din contSL elementul glisant.

 setarea finală privată a funcțieiContrast (e: SliderEvent): void color.contrast = e.target.value; Actualizați(); 

Pasul 16: Hue

Această funcție modifică valoarea Hue, obținându-i datele din hueSL elementul glisant.

 funcția finală privată finală (e: SliderEvent): void color.hue = e.target.value; Actualizați(); 

Când modificați nuanța unei culori, o mutați în jurul roții de culoare cu numărul de grade specificat.


Pasul 17: Saturație

Această funcție modifică valoarea saturației, obținându-și datele de la satSL elementul glisant.

 setarea finală a funcției finale private (e: SliderEvent): void color.saturation = e.target.value; Actualizați(); 

Când modificați saturația unei culori, o deplasați spre sau în afara centrului roții de culoare.


Pasul 18: Funcția de actualizare

Această funcție se numește în fiecare schimbare a cursorului. Reînnoiește ColorMatrixFilter valoare și îl aplică imaginii în etapă.

 actualizare finală privată (): void filter = new ColorMatrixFilter (color.CalculateFinalFlatArray ()); image.filters = [filtru]; 

Pasul 19: Setați clasa principală

Vom folosi clasa de documente în acest tutorial, dacă nu știți cum să o utilizați sau sunteți puțin confuză vă rugăm să citiți acest QuickTip.


Pasul 20: Testați

Sunteți gata să testați - apăsați Cmd + Return pentru a exporta aplicația dvs. și a vedea că funcționează!


Concluzie

Ați învățat o tehnică excelentă de manipulare a imaginii, experimentați-o cu ea!

Vă mulțumim că ați citit acest tutorial, sper că ați găsit-o utilă!


Mai multe resurse colorate pe Activetuts+

  • Manipulați efectele vizuale cu ColorMatrixFilter și ConvolutionFilter
  • Comparând filtrele în Flash
  • Creați un editor de luminozitate în ActionScript 3
  • Sfat rapid: Baterea în mișcare în timp real
  • Utilizați puterea paletei de cartografiere pentru personalizarea caracterelor de joc - Premium Premium
Cod