#N canvas 537 61 630 547 10; #X declare -lib Gem; #X text 452 8 GEM object; #X obj 8 216 cnv 15 430 300 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 39 218 Inlets:; #X text 33 484 Outlets:; #X obj 8 176 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 0; #X text 17 175 Arguments:; #X obj 8 76 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 449 77 cnv 15 170 300 empty empty empty 20 12 0 14 -228992 -66577 0; #X text 453 60 Example:; #X obj 514 314 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 0; #N canvas 0 22 450 300 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 142 68 set create; #X msg 132 112 create \, 1; #X msg 198 112 destroy; #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 restore 519 353 pd gemwin; #X msg 519 334 destroy; #X text 515 313 Create window:; #X obj 450 138 cnv 15 160 150 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 451 84 gemhead; #X text 71 31 Class: pix object; #X obj 510 85 bng 15 250 50 0 empty empty pix_load 20 8 0 8 -262144 -1 -1; #N canvas 0 22 587 366 image 0; #X obj 77 48 inlet; #X obj 77 344 outlet; #X obj 77 205 pix_image examples/data/fractal.JPG; #X obj 223 55 inlet; #X msg 223 123 open \$1; #X obj 223 100 openpanel; #X obj 78 308 pix_buf; #X msg 112 281 auto 1; #X obj 112 261 loadbang; #X connect 0 0 2 0; #X connect 2 0 6 0; #X connect 3 0 5 0; #X connect 4 0 2 0; #X connect 5 0 4 0; #X connect 6 0 1 0; #X connect 7 0 6 0; #X connect 8 0 7 0; #X restore 451 113 pd image; #X obj 451 293 pix_texture; #X text 63 186 ; #X text 51 497 Outlet 1: gemlist; #X text 33 232 Inlet 1: gemlist; #X obj 451 315 square 3; #X text 50 12 Synopsis: [pix_levels]; #X floatatom 543 250 5 0 100 1 low - -; #X floatatom 543 268 5 0 100 1 high - -; #X msg 460 158 auto \$1; #X obj 460 140 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 460 177 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 520 140 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X msg 520 158 inv \$1; #X msg 461 225 0 1 0.5 0.6; #X obj 451 265 pix_levels; #X msg 536 216 0.5 0.6 0 1; #X msg 460 195 uni \$1; #X text 29 77 Description: level adjustment; #X text 33 274 Inlet 1: message: uni [1|0] (choose between uniform adjustment(1=default) or per-channel-adjustment (0)); #X text 33 302 Inlet 1: message: inv [1|0] (allow inversion of level-correction to avoid instabilities. default:1); #X text 33 334 Inlet 2: list: inFloor inCeiling outFloor outCeiling (for uniform adjustment); #X text 33 388 Inlet 4: list: inFloor inCeiling outFloor outCeiling (for by-channel adjustment green); #X text 33 414 Inlet 5: list: inFloor inCeiling outFloor outCeiling (for by-channel adjustment blue); #X text 33 360 Inlet 3: list: inFloor inCeiling outFloor outCeiling (for by-channel adjustment red); #X text 32 446 Inlet 6: float: low percentile (in auto mode); #X text 32 460 Inlet 7: float: high percentile (in auto mode); #X text 12 91 [pix_levels] allows basic level adjustment in several different modes. You can choose to either make level-adjustment on a per-channel (RGB) basis or uniformly for all channels. You need to specify the lowest/highest values of both input and output. There is also an auto-mode available; #X text 33 247 Inlet 1: message: auto [1|0] (turns automatic level-correction on/off)(default:0); #X msg 536 193 0 0.1 1 0.5; #X text 516 105 open an image; #X text 509 118 (JPEG \, TIFF \, ..); #X obj 523 8 declare -lib Gem; #X connect 10 0 11 0; #X connect 11 0 10 0; #X connect 14 0 17 0; #X connect 16 0 17 1; #X connect 17 0 32 0; #X connect 18 0 22 0; #X connect 24 0 32 5; #X connect 25 0 32 6; #X connect 26 0 32 0; #X connect 27 0 26 0; #X connect 28 0 34 0; #X connect 29 0 30 0; #X connect 30 0 32 0; #X connect 31 0 32 1; #X connect 32 0 18 0; #X connect 33 0 32 3; #X connect 34 0 32 0; #X connect 46 0 32 2;