⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sketch

📁 图像压缩解压的源码
💻
字号:
#!/usr/local/bin/perl# sketch - G.O. 7/27/98# modified CC 11/8/99# for Blobworld sketchpadrequire "../../cgi/query_utils.p";require "../../cgi/schema.p";require "/elib/sys/bin/sql_utils_inf.p";$DEBUG = 0;  # if 1, call only DB keyword match; if 2, don't call anything$GET_SHAPE = 0; # by default$FILTER = 0; # otherwise, do the full query$heading = "Blobworld Sketchpad";$num_imgs = 35000; # hardwired, for now$requested_imgs = 5000;printf "Content-type: text/html\n\n";&get_input;if ($keywords eq "nokeywords") {    $keywords = "";} elsif ($keywords eq "getshape") {    $GET_SHAPE = 1;    $keywords = "";} else {    &get_keyword_matches;}if ($DEBUG) {    print "<HTML><HEAD>\n<TITLE>";    print "$heading</TITLE></HEAD>\n";    print "<BODY BGCOLOR=#FFFFFF>\n";    print "<A HREF=/>\n";    print "</A>\n";    print "<H2>$heading</H2>\n";    print "<br clear=left><HR>";    print "<b>Incoming:</b> $in<P><HR><P>\n";    print "<b>Parsed variables:</b><P>\n";    if ($keywords eq "") {	print "<b>No keywords specified</b><br>\n";    } else {	print "<b>Keywords:</b> $keywords<br>\n";    }        print "<b>xsize:</b> $xsize, <b>ysize:</b> $ysize<br>\n";    &print_blob_info("1");    if ($numblobs == 2) {	&print_blob_info("2");    }}$server =  $ENV{'SERVER_PORT'};if ($server == 8080) {    $head = "/elib/sys/test/httpd";} else {    $head = "/elib/sys/httpd";}if ($numblobs == 0) { # query using just keywords    $cmd = "$head/cgi-bin/blobrank/query_keywords_only $num_from_keywords $imlist $num_imgs \"$keywords\" $dbtime $head";} else {    $cmdinnards = "$numblobs";    for ($blobid = 1; $blobid <= $numblobs; $blobid++) {	$cmdinnards = "$cmdinnards $overall_weight[$blobid] $col_weight[$blobid] $tex_weight[$blobid] $loc_weight[$blobid] $shape_weight[$blobid] $numcolors[$blobid]";	if ($numcolors[$blobid] > 1) {	    $cmdinnards = "$cmdinnards $col1[$blobid] $col2[$blobid]";	} else {	    $cmdinnards = "$cmdinnards $col1[$blobid]";	}	$cmdinnards = "$cmdinnards $tex[$blobid]";	$cmdinnards = "$cmdinnards $num_shape_points[$blobid] $shape[$blobid]";    }    $cmdinnards = "$cmdinnards $xsize $ysize";        if ($keywords eq "") { # query using just blob(s)	if ($GET_SHAPE) { # call version that just returns shape parameters	    $cmd = "$head/cgi-bin/blobrank/sketch/query_sketch_get_shape";	} elsif ($FILTER) {	    $cmd = "$head/cgi-bin/blobrank/query_sketch_filter";	} else {	    $cmd = "$head/cgi-bin/blobrank/query_sketch_full";	}	$cmd = "$cmd $cmdinnards $num_imgs $requested_imgs $head";    } else { # query using blob(s) + keywords	$cmd = "$head/cgi-bin/blobrank/query_sketch_partial_randomaccess";	$cmd = "$cmd $cmdinnards $num_imgs $num_from_keywords $head $imlist";	$cmd = "$cmd \"$keywords\" $dbtime";    }}if (!$DEBUG) {    print `$cmd`;} else {    print "<P><HR><P>cmd: |$cmd|\n";    print "</BODY>\n";    print "</HTML>\n";}sub get_input {    local (*in) = @_ if @_;    local ($i, $key, $val);  # Read in text    $in = $ENV{'QUERY_STRING'};    @params = split(/\,/,$in);    $keywords = $params[0];    $keywords = &strip($keywords);  # get rid of extra spaces    $keywords =~ s/ and / /g;   # get rid of "and,or,not"    $keywords =~ s/ or / /g;      $keywords =~ s/ not / /g;    $count = 1;        $xsize = $params[$count++];    $ysize = $params[$count++];        $numblobs = $params[$count++];    if ($numblobs == 0) {	$error= "<h4>Please go back and select at least one blob</4>\n";	return;    }    if ($numblobs == 1 || $numblobs == 2) {	$blobid = 1;	$numcolors[$blobid] = $params[$count++];	$col1[$blobid] = $params[$count++];	if ($numcolors[$blobid] == 2) {	    $col2[$blobid] = $params[$count++];	}	&get_blob_stuff($blobid);	if ($numblobs == 2) {	    $blobid = 2;	    $numcolors[$blobid] = $params[$count]; $count++;	    $col1[$blobid] = $params[$count]; $count++;	    if ($numcolors[$blobid] == 2) {		$col2[$blobid] = $params[$count]; $count++;	    }	    &get_blob_stuff($blobid);	    	}    } else {	$error = "<h4>Error: numblobs = $numblobs;  you can only pick one or two blobs<h4>";	return;    }}sub get_blob_stuff {    local($blobid) = @_;    $tex[$blobid] = $params[$count]; $count++;    $overall_weight[$blobid] = $params[$count]; $count++;    $col_weight[$blobid] = $params[$count]; $count++;    $tex_weight[$blobid] = $params[$count]; $count++;    $loc_weight[$blobid] = $params[$count]; $count++;    $shape_weight[$blobid] = $params[$count]; $count++;    $num_shape_points[$blobid] = $params[$count]; $count++;    $shape[$blobid] = $params[$count]; $count++;}sub get_keyword_matches {        if ($DEBUG eq 2) {	print "not sending keyword query to DB<br>\n";	$num_from_keywords = "NO_KW_NUM";	$imlist = "NO_IMLIST";	$dbtime = "NO_DB_TIME";	    } else {	##### send keywords to DB to get a list of matches.	##### result --> $imlist of length $num_from_keywords        ##### also set $dbtime to time taken by DB, if possible; otherwise,        ##### set $dbtime = -1;		$dbtime = -1;	$u_k = uc($keywords);	        $kw_query = "";        @words = split(/_/,$u_k);  # parse the incoming string into words        $first = 1;        foreach $word (@words) {            if ($first eq 0) {                $kw_query = "$kw_query AND ";            }            $kw_query = "$kw_query (diskname like '%$word%' or keywords like '%$word%' or description like '%$word%')";            $first = 0;        }        $kw_query = "select imgnum from img_bw where $kw_query";		$tmp = &get_multiple_records($kw_query); 		$num_from_keywords = $num_matches;	open(FH, "$tmp") || die "Can't open tmp file for reading";	while(<FH>) {	    chomp($_);	    $imlist .= "$_ ";	}	close(FH);		if ($DEBUG eq 1) {	    print "<p>Database results:<p>\n";	    print "kw_query: $kw_query<p>\n";	    print "num_from_keywords: $num_from_keywords<p>\n";	    print "imlist: $imlist<p>\n";	    print "<p><hr><p>\n";	}    }   }sub print_blob_info {    local($blobid) = @_;        print "<p><b>Blob $blobid</b>\n";    print "<dd>weight for this blob: $overall_weight[$blobid]\n";    if ($numcolors[$blobid] > 1) {	print "<dd>two colors: $col1[$blobid] and $col2[$blobid]\n";    } else {	print "<dd>one color: $col1[$blobid] \n";    }    print "<dd>texture: $tex[$blobid]\n";    print "<dd>weights: color=$col_weight[$blobid]  texture=$tex_weight[$blobid]  location=$loc_weight[$blobid]  shape=$shape_weight[$blobid] \n";    print "<dd>geometry: number of points = $num_shape_points[$blobid]; points = $shape[$blobid]\n";    }##1; #return true

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -