105
edits
No edit summary |
No edit summary |
||
| Line 73: | Line 73: | ||
</pre> | </pre> | ||
? | ? | ||
<hr> | |||
yes - seems to need to be "All", "And", "Whatever". Still, here's one that kinds does what we want... | |||
http://hack.rs/cgi-bin/threshold_grayscale.pl | |||
<pre> | |||
#!/usr/bin/perl -w | |||
use strict; | |||
use CGI; | |||
use CGI::Carp qw(fatalsToBrowser warningsToBrowser); | |||
use List::Util qw(max min); | |||
my $q = CGI->new(); | |||
print $q->header; | |||
print $q->start_html; | |||
print $q->p("this is a thing for doing threshholding"); | |||
print $q->p("<small>or possibly <i>thresholding</i>?</small>"); | |||
print $q->start_form( -enctype => "multipart/form-data" ); | |||
print $q->p("file"); | |||
print $q->filefield('uploaded_file'); | |||
print $q->submit(); | |||
print $q->end_form; | |||
# do we have an upload? | |||
my $filehandle = $q->upload('uploaded_file'); | |||
if (defined $filehandle) { | |||
# do shit | |||
print $q->p("I'm doing shit"); | |||
# no, actually do shit | |||
my $filename = $q->param('uploaded_file'); | |||
my $tempfile = $q->tmpFileName($filename); | |||
foreach my $i (0 .. 7) { | |||
my $n = ((2 ** (8 + $i)) / 2**16 )*100; #as a percentage | |||
my @ar = ("gm", | |||
# "convert", "-type", "grayscale", "-colors", 8, "-threshold", 12.5*$i ."%", | |||
"convert", "-type", "grayscale", "-operator", | |||
"Gray", "And", $n ."%", | |||
"-threshold", max($n -1, 0) ."%", | |||
$tempfile, | |||
"/var/www/threshold_output/$filename".$i ); | |||
print $q->p("$i : " . join " ", @ar); | |||
system(@ar) == 0 or carp "system call failed: $?"; #safer than passing a string to system() | |||
print $q->img({src => "/threshold_output/$filename".$i}); | |||
} | |||
} | |||
print $q->end_html; | |||
</pre> | |||
i converted the raw values to percentages of a max because it wasn't working the other way. I'm not clear on the bit depth of the greyscale image. tried setting it with -depth but still no joy. still, this version is kind of working as it is. | |||
--[[User:AndyE|AndyE]] 15:12, 12 January 2011 (UTC) | |||
edits