[orx-fx] Add Duotone, DuotoneGradient, LumaHalftone, Posterize, RgbToOkLab, OkLabToRgb
This commit is contained in:
26
orx-fx/src/demo/kotlin/DemoColorDuotone01.kt
Normal file
26
orx-fx/src/demo/kotlin/DemoColorDuotone01.kt
Normal file
@@ -0,0 +1,26 @@
|
||||
import org.openrndr.extra.fx.color.Duotone
|
||||
import org.openrndr.application
|
||||
import org.openrndr.draw.createEquivalent
|
||||
import org.openrndr.draw.loadImage
|
||||
import org.openrndr.math.mod_
|
||||
|
||||
fun main() {
|
||||
application {
|
||||
program {
|
||||
|
||||
val image = loadImage("demo-data/images/image-001.png")
|
||||
val filteredImage = image.createEquivalent()
|
||||
val duotone = Duotone()
|
||||
|
||||
extend {
|
||||
|
||||
duotone.labInterpolation = seconds.mod_(2.0) < 1.0
|
||||
duotone.apply(image, filteredImage)
|
||||
drawer.image(filteredImage)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
25
orx-fx/src/demo/kotlin/DemoColorDuotoneGradient01.kt
Normal file
25
orx-fx/src/demo/kotlin/DemoColorDuotoneGradient01.kt
Normal file
@@ -0,0 +1,25 @@
|
||||
import org.openrndr.application
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.createEquivalent
|
||||
import org.openrndr.draw.loadImage
|
||||
import org.openrndr.extra.fx.color.DuotoneGradient
|
||||
|
||||
fun main() = application {
|
||||
program {
|
||||
val image = loadImage("demo-data/images/image-001.png")
|
||||
val filteredImage = image.createEquivalent()
|
||||
val duotone = DuotoneGradient()
|
||||
duotone.labInterpolation = false
|
||||
|
||||
extend {
|
||||
duotone.labInterpolation = true
|
||||
duotone.backgroundColor0 = ColorRGBa.BLACK
|
||||
duotone.foregroundColor0 = ColorRGBa.RED
|
||||
duotone.backgroundColor1 = ColorRGBa.BLUE
|
||||
duotone.foregroundColor1 = ColorRGBa.WHITE
|
||||
duotone.rotation = seconds * 45.0
|
||||
duotone.apply(image, filteredImage)
|
||||
drawer.image(filteredImage)
|
||||
}
|
||||
}
|
||||
}
|
||||
25
orx-fx/src/demo/kotlin/DemoColorPosterize01.kt
Normal file
25
orx-fx/src/demo/kotlin/DemoColorPosterize01.kt
Normal file
@@ -0,0 +1,25 @@
|
||||
import org.openrndr.extra.fx.color.Duotone
|
||||
import org.openrndr.application
|
||||
import org.openrndr.draw.createEquivalent
|
||||
import org.openrndr.draw.loadImage
|
||||
import org.openrndr.extra.fx.color.Posterize
|
||||
import org.openrndr.math.mod_
|
||||
|
||||
fun main() {
|
||||
application {
|
||||
program {
|
||||
val image = loadImage("demo-data/images/image-001.png")
|
||||
val filteredImage = image.createEquivalent()
|
||||
val posterize = Posterize()
|
||||
|
||||
extend {
|
||||
posterize.levels = 2
|
||||
posterize.apply(image, filteredImage)
|
||||
drawer.image(filteredImage)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
26
orx-fx/src/demo/kotlin/DemoDitherLumaHalftone01.kt
Normal file
26
orx-fx/src/demo/kotlin/DemoDitherLumaHalftone01.kt
Normal file
@@ -0,0 +1,26 @@
|
||||
import org.openrndr.application
|
||||
import org.openrndr.draw.createEquivalent
|
||||
import org.openrndr.draw.loadImage
|
||||
import org.openrndr.extra.fx.dither.LumaHalftone
|
||||
import org.openrndr.math.mod_
|
||||
|
||||
fun main() {
|
||||
application {
|
||||
program {
|
||||
val image = loadImage("demo-data/images/image-001.png")
|
||||
val filteredImage = image.createEquivalent()
|
||||
val lumaHalftone = LumaHalftone()
|
||||
extend {
|
||||
lumaHalftone.rotation = -15.0
|
||||
lumaHalftone.freq0 = 100.0
|
||||
lumaHalftone.gain1 = 1.0
|
||||
lumaHalftone.threshold = 0.5
|
||||
lumaHalftone.phase0 = seconds*0.1
|
||||
lumaHalftone.phase1 = -seconds*0.1
|
||||
lumaHalftone.apply(image, filteredImage)
|
||||
lumaHalftone.invert = seconds.mod_(2.0) < 1.0
|
||||
drawer.image(filteredImage)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
27
orx-fx/src/demo/kotlin/DemoOkLab01.kt
Normal file
27
orx-fx/src/demo/kotlin/DemoOkLab01.kt
Normal file
@@ -0,0 +1,27 @@
|
||||
import org.openrndr.extra.fx.color.RgbToOkLab
|
||||
import org.openrndr.extra.fx.color.OkLabToRgb
|
||||
import org.openrndr.application
|
||||
import org.openrndr.draw.ColorType
|
||||
import org.openrndr.draw.createEquivalent
|
||||
import org.openrndr.draw.loadImage
|
||||
|
||||
/**
|
||||
* This demonstrates converting a [ColorBuffer] from and to (OK)LAB color space using the [RgbToOkLab] and [OkLabToRgb]
|
||||
* filters. The (OK)Lab representation is signed and requires a floating point representation.
|
||||
*/
|
||||
|
||||
fun main() {
|
||||
application {
|
||||
program {
|
||||
val rgbToOkLab = RgbToOkLab()
|
||||
val okLabToRgb = OkLabToRgb()
|
||||
val image = loadImage("demo-data/images/image-001.png")
|
||||
val labImage = image.createEquivalent(type = ColorType.FLOAT32)
|
||||
rgbToOkLab.apply(image, labImage)
|
||||
okLabToRgb.apply(labImage, image)
|
||||
extend {
|
||||
drawer.image(image)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user