Anonymous

User talk:BytePilot: Difference between revisions

From London Hackspace Wiki
no edit summary
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)
105

edits