Pas de kleureigenschappen van een afbeelding aan met ActionScript 3

In deze zelfstudie leren we hoe u AS3 kunt gebruiken om een ​​RIA te maken die de kleureigenschappen van een afbeelding kan wijzigen, zoals Helderheid, Contrast, Tint en Verzadiging. Lees verder!


Eindresultaat voorbeeld

Laten we eens kijken naar het eindresultaat waar we naartoe zullen werken:


Stap 1: Kort overzicht

We zullen een native ActionScript-klasse gebruiken die nieuwe waarden krijgt van een schuifcomponent en deze dan toepassen op de doelafbeelding met behulp van de klasse ColorMatrixFilter.


Stap 2: Instellingen voor Flash-document

Start Flash en maak een nieuw document. Stel de stage in op 557x400 px en de framesnelheid op 24 fps.


Stap 3: De interface

De interface zal heel eenvoudig zijn; alleen een afbeelding in de fase die vervolgens wordt gewijzigd door de onderdelen van Schuifregelaars in het deelvenster Adjust Color.


Stap 4: Demo-afbeelding

We hebben een afbeelding nodig om onze applicatie te testen, kiezen uit uw persoonlijke verzameling of downloaden om te testen.

Dit is de afbeelding van de demo, verkregen van Flickr, met een Creative Commons-licentie.

Bloem door Antonio Manchado


Stap 5: Exemplaarnamen

Maak een paneel en vier schuifregelaars met instantienamen zoals te zien in de volgende afbeelding:

U kunt balken boven de schuifregelaars toevoegen om het uiterlijk te verbeteren.


Stap 6: schuifregelaarwaarden

Laten we de waarden van de Slider-componenten instellen.

Deze worden verkregen uit de minimale en maximale geldige waarden van de AdjustColor-klasse, die we zullen gebruiken om elke eigenschap aan te passen:

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

Stap 7: Nieuwe ActionScript-klasse

Maak een nieuwe ActionScript 3.0-klasse (Cmd + N) en sla deze op als Main.as in je klasmap.


Stap 8: klassestructuur

Maak uw standaard klassenstructuur om te beginnen met het schrijven van uw code.

> pakket import flash.display.Sprite; public class Hoofd breidt uit openbare functie Main (): void // constructor code

Stap 9: Vereiste klassen

Dit zijn de klassen die we moeten importeren voor onze klas om te werken; de importeren richtlijn maakt extern gedefinieerde klassen en pakketten beschikbaar voor uw code.

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

Stap 10: Variabelen

Dit zijn de variabelen die we zullen gebruiken; lees de opmerkingen in de code om meer over hen te weten te komen.

 private var color: AdjustColor = new AdjustColor (); // Dit object bevat de kleureigenschappen private var-filter: ColorMatrixFilter; // Bewaart het gewijzigde kleurenfilter om de afbeelding te wijzigen

Stap 11: Constructor

De constructor is een functie die wordt uitgevoerd wanneer een object wordt gemaakt op basis van een klasse; deze code is de eerste die wordt uitgevoerd wanneer u een instantie van een object maakt, of in dit geval wordt deze uitgevoerd wanneer de SWF wordt geladen, omdat deze zich in de documentklasse bevindt.

Het zal de nodige acties uitvoeren om de applicatie te starten.

 public final function Main (): void // Code

Stap 12: Initiële matrix

De kleurenmatrix wordt gegenereerd door de waarden die zijn opgeslagen in de AdjustColor-eigenschappen; we moeten de beginwaarden voor deze eigenschappen instellen om een ​​correcte matrix te krijgen. Als we dit niet doen, wordt een array met nulwaarden gegenereerd.

 / * Benodigd om initiële Matrix * / color.brightness = 0 te maken; color.contrast = 0; color.hue = 0; color.saturation = 0; / * Deze functie voegt de nodige gebeurtenislisteners toe * / addListeners ();

Stap 13: schuif luisteraars toevoegen

Deze functie voegt toehoorders toe aan de Slider-componenten om bepaalde functies aan te roepen wanneer hun waarden veranderen.

 private finale functie addListeners (): void colorPanel.brightSL.addEventListener (SliderEvent.CHANGE, adjustBrightness); colorPanel.contSL.addEventListener (SliderEvent.CHANGE, adjustContrast); colorPanel.hueSL.addEventListener (SliderEvent.CHANGE, adjustHue); colorPanel.satSL.addEventListener (SliderEvent.CHANGE, adjustSaturation); 

Stap 14: Helderheid

Met deze functie wordt de helderheidswaarde aangepast, waardoor de gegevens uit de brightSL schuifcomponent.

 private final-functie adjustBrightness (e: SliderEvent): void color.brightness = e.target.value; bijwerken(); 

Stap 15: Contrast

Deze functie past de waarde van het contrast aan en haalt de gegevens uit de contSL schuifcomponent.

 private finale functie adjustContrast (e: SliderEvent): void color.contrast = e.target.value; bijwerken(); 

Stap 16: Hue

Met deze functie wordt de Hue-waarde gewijzigd en worden de gegevens opgehaald uit de hueSL schuifcomponent.

 private final-functie adjustHue (e: SliderEvent): void color.hue = e.target.value; bijwerken(); 

Wanneer u de tint van een kleur wijzigt, verplaatst u deze rond het kleurenwiel met het opgegeven aantal graden.


Stap 17: Verzadiging

Met deze functie wordt de verzadigingswaarde aangepast, waardoor de gegevens uit de satSL schuifcomponent.

 private laatste functie adjustSaturation (e: SliderEvent): void color.saturation = e.target.value; bijwerken(); 

Wanneer u de verzadiging van een kleur wijzigt, verplaatst u deze naar het midden van het kleurenwiel of weg van het centrum.


Stap 18: Update-functie

Deze functie wordt bij elke wijziging van de schuifregelaar opgeroepen. Het vernieuwt de ColorMatrixFilter waarde en past deze toe op de afbeelding in fase.

 private final function update (): void filter = new ColorMatrixFilter (color.CalculateFinalFlatArray ()); image.filters = [filter]; 

Stap 19: Stel hoofdklasse in

We maken in deze tutorial gebruik van de documentklasse, als je niet weet hoe je het moet gebruiken of een beetje in de war bent, lees dan deze QuickTip.


Stap 20: Test

U bent klaar om te testen - druk op Cmd + Return om uw toepassing te exporteren en hem te zien werken!


Conclusie

Je hebt een uitstekende techniek van beeldmanipulatie geleerd, ermee experimenteer!

Bedankt voor het lezen van deze tutorial. Ik hoop dat je het nuttig hebt gevonden!


Meer kleurrijke bronnen over Activetuts+

  • Manipuleer visuele effecten met de ColorMatrixFilter en ConvolutionFilter
  • Filters vergelijken in Flash
  • Maak een helderheidseditor in ActionScript 3
  • Snelle tip: Real Time Motion Trails opzwepen
  • Gebruik de kracht van Palet Mapping om spelkarakters aan te passen - Active Premium