56 lines
1.6 KiB
Kotlin
56 lines
1.6 KiB
Kotlin
/**
|
|
* Demonstrate the Contour filter
|
|
* @author Edwin Jakobs
|
|
*/
|
|
|
|
import org.openrndr.application
|
|
import org.openrndr.color.ColorRGBa
|
|
import org.openrndr.draw.createEquivalent
|
|
import org.openrndr.draw.loadImage
|
|
import org.openrndr.extra.fx.edges.Contour
|
|
import org.openrndr.extra.imageFit.imageFit
|
|
import org.openrndr.extra.shapes.primitives.grid
|
|
|
|
fun main() = application {
|
|
configure {
|
|
width = 720
|
|
height = 720
|
|
}
|
|
program {
|
|
val image = loadImage("demo-data/images/image-001.png")
|
|
val contour = Contour()
|
|
contour.levels = 4.0
|
|
contour.window = 1
|
|
contour.outputBands = true
|
|
contour.contourColor = ColorRGBa.PINK
|
|
contour.backgroundOpacity = 0.0
|
|
|
|
val edges = image.createEquivalent()
|
|
extend {
|
|
val cells = drawer.bounds.grid(2, 2).flatten()
|
|
val actions = listOf(
|
|
{
|
|
contour.outputBands = true
|
|
contour.levels = 2.0
|
|
},
|
|
{
|
|
contour.outputBands = false
|
|
contour.levels = 2.0
|
|
},
|
|
{
|
|
contour.outputBands = false
|
|
contour.levels = 8.0
|
|
},
|
|
{
|
|
contour.outputBands = true
|
|
contour.levels = 8.0
|
|
},
|
|
)
|
|
for ((cell, action) in cells zip actions) {
|
|
action()
|
|
contour.apply(image, edges)
|
|
drawer.imageFit(edges, cell)
|
|
}
|
|
}
|
|
}
|
|
} |