Mera bildfilter i Java
Digitala bildfilter kan användas för att påverka en bild och skapa
intrssanta bildeffekter. Ett bildfilter är en funktion eller
algoritm som givet ett antal inparametrar transformerar en
orginalbild till en filtrerad bild. Den transformerade bilden
kan skilja sig från orginalbilden i till exempel färg, form och
storlek med mera, allt beroende på hur filtret är konstruerat.
Intressanta synergieffekter, som kan vara svåra att förutse, kan
uppstå i bilden om flera filter appliceras efter varandra där varje
filter transformerar bilden som det föregående filtret producerat.
Denna uppgift illustrerar användning av den abstrakta Java klassen
RGBImageFilter för att skapa olika bildfilter.
Själva grundmotorn är densamma som i den föregående uppgiften. Det
som är nytt är själva filter-klasserna.
I en omdefinition av av basklassens filterRGB-metod
sker en separering av de fyra olika kanalerna: alpha, red, green
och blue, med hjälp av bit-masker och operatorn "&". Själva
pixelpåverkan sker på lite olika sätt, men varje filter-klass
retunerar slutligen dessa bitar som beskriver hur bilden skall
transformeras. I ett av filtren sker själva filtreringen direkt
i returen.
Följande filter finns:
GrayDay - istället för gråfilter (bilden blir snyggare)
FlipFlop - invertering av färger
BlueBayou - byter plats på blått och rött
SunShine - framhäver röda och gula toner
GreenLight - byter plats på rött och grönt, samt tonar ner grönt
PaintFantasy - färgerna bleks och röd nyans framhävs
Källkod: ImageFilter.java
Let the work of art speak for itself!
|