-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathDemoContour01.kt
More file actions
64 lines (61 loc) · 1.87 KB
/
Copy pathDemoContour01.kt
File metadata and controls
64 lines (61 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
/**
* Demonstrates the [Contour] filter.
* @author Edwin Jakobs
*
* This demo creates a grid of 2x2 to draw a loaded image four times,
* each using the [Contour] effect with different parameters.
*
* `actions` is a variable containing a list of 4 functions.
* Each of these functions sets the effect parameters to different values.
*
* The 4 grid cells and the 4 actions are used in pairs:
* first the action is called to set the effect parameters, the
* effect is applied, and the result is drawn in a cell.
*/
fun main() = application {
configure {
width = 720
height = 720
}
program {
val image = loadImage("demo-data/images/image-001.png")
val contour = Contour()
contour.window = 1
contour.contourColor = ColorRGBa.PINK
contour.backgroundOpacity = 0.0
val edges = image.createEquivalent()
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
},
)
extend {
for ((cell, action) in cells zip actions) {
action()
contour.apply(image, edges)
drawer.imageFit(edges, cell)
}
}
}
}