diff options
Diffstat (limited to 'Plugins/subtract.cpp')
-rw-r--r-- | Plugins/subtract.cpp | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/Plugins/subtract.cpp b/Plugins/subtract.cpp index 89ba216..3172513 100644 --- a/Plugins/subtract.cpp +++ b/Plugins/subtract.cpp @@ -1,3 +1,9 @@ +// +// subtract - subtract red/green/blue color from image +// +// 0.32 +// using arguments-class +// // 0.20 // - from c to c++ // - pixelformat-aware @@ -9,30 +15,35 @@ void perform_effect(_frame f, _args a) { - pixels p(f); - char *t; - byte tr, tg, tb, r=0, g=0, b=0; - - if(!a.s) return; + arguments ar(a.s); - r = atoi(a.s); - if(t = strstr(a.s, " ")) + if(ar.count()!=3) { - g = atoi(t+1); - if (t = strstr(t+1, " ")) - b = atoi(t+1); + printf("usage: subtract <red> <green> <blue>\n"); + return; } + byte r, g, b; + + r = atoi(ar[0]); + g = atoi(ar[1]); + b = atoi(ar[2]); + + pixels p(f); + byte tr, tg, tb; + while(!p.eof()) { tr = p.red(); tg = p.green(); tb = p.blue(); + p.putrgb( tr>r ? tr-r : 0, tg>g ? tg-g : 0, tb>b ? tb-b : 0 ); + p.next(); } } |