aboutsummaryrefslogtreecommitdiff
path: root/Gem/examples/04.pix/12.blending.pd
blob: 5f8f982d18a83306b1f6ec5d44aafe1e43e722b2 (plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#N canvas 138 0 775 371 10;
#X obj 254 305 pix_texture;
#X obj 290 112 gemhead 20;
#X obj 254 65 gemhead;
#X text 257 30 various methods for blending images;
#N canvas 165 295 561 386 blending 0;
#X obj 28 65 inlet;
#X obj 191 354 outlet;
#X obj 173 285 inlet;
#X obj 320 8 inlet;
#X obj 28 322 pix_composite;
#X obj 129 323 pix_add;
#X obj 285 322 pix_diff;
#X obj 191 322 pix_subtract;
#X obj 28 227 pix_alpha;
#N canvas 445 182 508 174 select 0;
#X obj 88 35 inlet;
#X msg 88 98 1;
#X msg 144 98 2;
#X msg 201 97 3;
#X msg 257 97 0;
#X obj 88 121 outlet;
#X msg 329 100 4;
#X obj 88 59 select pix_add pix_subtract pix_diff pix_composite pix_multiply
;
#X connect 0 0 7 0;
#X connect 1 0 5 0;
#X connect 2 0 5 0;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 6 0 5 0;
#X connect 7 0 1 0;
#X connect 7 1 2 0;
#X connect 7 2 3 0;
#X connect 7 3 4 0;
#X connect 7 4 6 0;
#X restore 350 82 pd select blending method;
#X obj 360 324 pix_multiply;
#N canvas 172 373 450 300 demux5 0;
#X obj 59 30 inlet;
#X obj 283 17 inlet;
#X obj 59 193 outlet;
#X obj 59 137 spigot;
#X obj 96 109 == 0;
#X obj 106 137 spigot;
#X obj 153 139 spigot;
#X obj 200 137 spigot;
#X obj 246 137 spigot;
#X obj 143 109 == 1;
#X obj 190 109 == 2;
#X obj 237 109 == 3;
#X obj 283 109 == 4;
#X obj 96 83 loadbang;
#X obj 59 52 t a a a a a;
#X obj 106 194 outlet;
#X obj 153 195 outlet;
#X obj 200 196 outlet;
#X obj 246 195 outlet;
#X obj 283 61 f;
#X connect 0 0 14 0;
#X connect 1 0 19 0;
#X connect 3 0 2 0;
#X connect 4 0 3 1;
#X connect 5 0 15 0;
#X connect 6 0 16 0;
#X connect 7 0 17 0;
#X connect 8 0 18 0;
#X connect 9 0 5 1;
#X connect 10 0 6 1;
#X connect 11 0 7 1;
#X connect 12 0 8 1;
#X connect 13 0 4 0;
#X connect 14 0 3 0;
#X connect 14 1 5 0;
#X connect 14 2 6 0;
#X connect 14 3 7 0;
#X connect 14 4 8 0;
#X connect 19 0 4 0;
#X connect 19 0 9 0;
#X connect 19 0 10 0;
#X connect 19 0 11 0;
#X connect 19 0 12 0;
#X restore 28 189 pd demux5;
#X obj 320 28 t b a;
#X obj 28 129 pix_buf;
#X text 26 39 pix1;
#X text 176 269 pix2;
#X obj 350 56 symbol;
#X text 99 232 we need an alpha component for 'composite';
#X text 85 115 [pix_add] and friends will overwrite the original (left)
image with the blend. [pix_buf] holds a local copy of the original
image and will refresh the output when banged.;
#X connect 0 0 13 0;
#X connect 2 0 5 1;
#X connect 2 0 4 1;
#X connect 2 0 7 1;
#X connect 2 0 6 1;
#X connect 2 0 10 1;
#X connect 3 0 12 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 1 0;
#X connect 7 0 1 0;
#X connect 8 0 4 0;
#X connect 9 0 11 1;
#X connect 10 0 1 0;
#X connect 11 0 8 0;
#X connect 11 1 5 0;
#X connect 11 2 7 0;
#X connect 11 3 6 0;
#X connect 11 4 10 0;
#X connect 12 0 13 0;
#X connect 12 1 16 0;
#X connect 13 0 11 0;
#X connect 16 0 9 0;
#X restore 254 250 pd blending;
#X obj 254 328 square 3;
#X text 461 210 additive blending (likely to get white);
#X text 461 231 subtractive blending (likely to get black);
#X text 467 184 alpha blending;
#X msg 367 281 pix_multiply;
#X msg 368 256 pix_diff;
#X msg 366 232 pix_subtract;
#X msg 366 207 pix_add;
#X msg 367 184 pix_composite;
#X text 469 281 multiply 2 images together;
#X obj 254 87 pix_image ../data/dancer.JPG;
#X obj 290 136 pix_image ../data/fractal.JPG;
#X text 465 259 difference;
#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 0 22 454 304 gemwin 0;
#X obj 132 136 gemwin;
#X obj 67 89 outlet;
#X obj 67 10 inlet;
#X obj 67 41 route create;
#X msg 67 70 set destroy;
#X msg 182 68 set create;
#X msg 132 112 create \, 1;
#X msg 238 112 destroy;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X msg 118 81 reset;
#X obj 118 113 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 289 80 pd Gem.init;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 6 0;
#X connect 3 1 5 0;
#X connect 3 1 7 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X restore 25 113 pd gemwin;
#X msg 25 89 create;
#X text 21 69 Create window and render;
#X connect 0 0 5 0;
#X connect 1 0 16 0;
#X connect 2 0 15 0;
#X connect 4 0 0 0;
#X connect 9 0 4 2;
#X connect 10 0 4 2;
#X connect 11 0 4 2;
#X connect 12 0 4 2;
#X connect 13 0 4 2;
#X connect 15 0 4 0;
#X connect 16 0 4 1;
#X connect 19 0 20 0;
#X connect 20 0 19 0;