File: C:/xampp/htdocs/CT9/CT9Parsing.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Camera Check</title>
</head>
<body class="oneColElsCtr">
<?php
$sum=260;
$check=1;
$dtime=time();
error_reporting(0);
$contact=$_POST["contact"];
$company=$_POST["company"];
$type=$_POST["type"];
$device=$_POST["device"];
$host="127.0.0.1";
$user="root";
$pass="fredsql";
$db="tvicheck-st";
$connection = mysql_connect($host, $user, $pass) or die ("Unable to connect!");
mysql_query("SET NAMES 'utf8'");
//$link = mssql_connect("MACBOOK7", "sa", "fred5697");
mysql_select_db($db) or die ("Unable to select database!");
$query = "select id from CT9 order by id desc limit 0,1";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
while($row = mysql_fetch_object($result))
{
$dStr=$row->id+1;
}
//$dStr=substr($dtime,7,9)."-";
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Control Target Checking form! " . "<br />";
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
$filename=$_FILES["file"]["name"];
//echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
// echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/x" .$_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ". "<br />";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" .$dStr."-".$_FILES["file"]["name"]);
echo $_FILES["file"]["name"] ." upload sucess! " . "<br />";
$upcc24o="upload/" .$dStr."-".$_FILES["file"]["name"];
$upcc24="upload/" .substr($dStr."-".$_FILES["file"]["name"],0,-4);
sleep(5);
echo "Report start: " . "<br />";
// echo "Stored in: " . "upload/" . $_FILES["file"]["name"]. "<br />";
$filename=substr($dStr."-".$_FILES["file"]["name"],0,-4);
$upcc24=$upcc24."b.jpg";
exec("echo . | convert ". $upcc24o." -blur 0x20 ".$upcc24);
sleep(2);
exec("echo . | convert ". $upcc24." info:".$filename."x.txt");
sleep(2);
//echo "echo . | convert ". $upcc24." info:".$filename.".txt";
$contents = file($filename."x.txt");
$string = implode($contents);
$dot = explode(" ", $string);
//print_r ($dot);
$pdot = explode("x", $dot[2]);
//print_r ($pdot);
$xpix=$pdot[0];
$ypix=$pdot[1];
$p1x=round(($pdot[0]/20),0)*1;
$p2x=round(($pdot[0]/20),0)*3;
$p3x=round(($pdot[0]/20),0)*5;
$p4x=round(($pdot[0]/20),0)*7;
$p5x=round(($pdot[0]/20),0)*9;
$p6x=round(($pdot[0]/20),0)*11;
$p7x=round(($pdot[0]/20),0)*13;
$p8x=round(($pdot[0]/20),0)*15;
$p9x=round(($pdot[0]/20),0)*17;
$p10x=round(($pdot[0]/20),0)*19;
$p1y=round(($pdot[1]/4),0)*1;
$p2y=round(($pdot[1]/4),0)*3;
//echo "<br>x1y1:".$p1x."x".$p1y."<br>";
//echo "x6y4:".$p6x."x".$p4y."<br>";
//echo "echo . | convert ". $upcc24."[1x1+".$p1x."+".$p1y."] -format '%[fx:int(255*r)] info:".$filename."p.txt";
//exec ("echo . | convert ". $upcc24."[1x1+".$p1x."+".$p1y."] info:".$filename."p.txt");
//echo "echo . | convert ". $upcc24."[1x1+".$p1x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p.txt";
exec("echo . | convert ". $upcc24."[1x1+".$p1x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p1.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p2x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p2.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p3x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p3.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p4x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p4.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p5x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p5.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p6x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p6.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p7x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p7.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p8x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p8.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p9x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p9.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p10x."+".$p1y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p10.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p1x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p11.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p2x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p12.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p3x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p13.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p4x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p14.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p5x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p15.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p6x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p16.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p7x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p17.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p8x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p18.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p9x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p19.txt");
exec("echo . | convert ". $upcc24."[1x1+".$p10x."+".$p2y."] -format %[fx:int(255*r)],%[fx:int(255*g)],%[fx:int(255*b)] info:".$filename."p20.txt");
sleep(2);
$myFile =$filename."px.txt";
//$icclab="upload/".$filename."T.ti1";
$fh = fopen($myFile, 'w') or die("can't open file");
//fwrite($fh, $p);
$viHead='CGATS.17
ORIGINATOR "icctrans"
#
# Data follows
#
NUMBER_OF_SETS 20
NUMBER_OF_FIELDS 4
BEGIN_DATA_FORMAT
SAMPLE_ID RGB_R RGB_G RGB_B
END_DATA_FORMAT
BEGIN_DATA
';
fwrite($fh, $viHead);
for ( $j = 1; $j <= 20; $j+= 1) {
$line=$j." ";
fwrite($fh, $line);
$contents = file($filename."p".$j.".txt");
$string = implode($contents);
$p = ereg_replace(",", " ", $string);
fwrite($fh, $p);
}
$viTail='END_DATA';
fwrite($fh, $viTail);
fclose($fh);
//echo "<br>icctrans -v -i ".$upicc." -o *Lab -t 3 ".$dStr."-CC24px.txt ".$dStr."-cc24lab.txt";
exec("echo . |icctrans -v -i sRGB.icm -o *Lab -t 3 ".$myFile." ".$filename."lab.txt");
}//satrt parsing
}//upload sucess
function get_between ($text, $s1, $s2) {
$mid_url = "";
$pos_s = strrpos($text,$s1);
$pos_e = strrpos($text,$s2);
for ( $i=$pos_s+strlen($s1) ; (( $i<($pos_e)) && $i < strlen($text)) ; $i++ ) {
$mid_url .= $text[$i];
}
return $mid_url;
}
$contents = file($filename."lab.txt");
$string = implode($contents);
$p = str_replace(' ','', $string );
$p = str_replace(' ',',', $p );
$p = str_replace(chr(13).chr(10),',', $p );
$datastring0=get_between($p,"BEGIN_DATA,",",END_DATA");
$dot = explode(",", $datastring0);
//print_r($dot);
function de94($l1,$a1,$b1,$l2,$a2,$b2) {
$cp=SQRT(pow($a1,2)+pow($b1,2));
$ctp=SQRT(pow($a2,2)+pow($b2,2));
$d76=sqrt(pow(($l1-$l2),2)+ pow(($a1-$a2),2)+pow(($b1-$b2),2));
$dph=SQRT(ABS(pow($d76,2)-pow(($l1-$l2),2)-pow((SQRT(pow($a1,2)+pow($b1,2))-SQRT(pow($a2,2)+pow($b2,2))),2)));
$dcp=$ctp-$cp;
$d94=SQRT((pow((($l1-$l2)/(1*1)),2))+pow(($dcp/(1*(1+(0.045*$cp)))),2)+ pow(($dph/(1*(1+(0.015*$cp)))),2));
return round($d94,2);
}
?>
<table width="200" border="1" align="center">
<tr align='center'>
<td align='center'>編號</td>
<td colspan="3">參考值</td>
<td colspan="3">偵測值</td>
<td>色差</td>
<tr align='center'>
<td align='center'>NO</td><td>RL</td><td>Ra</td><td>Rb</td><td>PL</td><td>Pa</td><td>Pb</td><td>dE(94)</td>
<?php
$TT76=0;
$max76=0;
$max1=0;
$max2=0;
$sum=0;
$i=1;
for ( $j = 0; $j < 10; $j+= 1) {
$L = $dot[$i+($j*4)];
$a = $dot[$i+1+($j*4)];
$b = $dot[$i+2+($j*4)];
$Lt = $dot[$i+(($j+10)*4)];
$at = $dot[$i+1+(($j+10)*4)];
$bt = $dot[$i+2+(($j+10)*4)];
$no=$j+1;
$de76r=de94($L,$a,$b,$Lt,$at,$bt);
$sum=$de76r+$sum;
if ($no==1) {
$bg="#ffffff";}
if ($no==2) {
$bg="#0099ff";}
if ($no==3) {
$bg="#ff75ed";}
if ($no==4) {
$bg="#faea0b";}
if ($no==5) {
$bg="#777777";}
if ($no==6) {
$bg="#95d9f0";}
if ($no==7) {
$bg="#f5abbf";}
if ($no==8) {
$bg="#eee89d";}
if ($no==9) {
$bg="#cccccc";}
if ($no==10) {
$bg="#ccccbb";}
echo "<tr align='right'><td bgcolor=".$bg.">".$no."</td><td>".round($L,2)."</td><td>".round($a,2)."</td><td>".round($b,2)."</td><td>".round($Lt,2)."</td><td>".round($at,2)."</td><td>".round($bt,2)."</td><td>";
if ($de76r>5) {
echo "<font color='red'>";}
else {"<font color='black'>";}
echo $de76r."</td></tr>";
$TT76=$de76r+$TT76;
$max1=max($max1,$de76r);
$max76=max($max1,$de76r);
}
$summ=100-$sum;
echo "<tr><td>Avg</td><td>".round(($TT76/24),2)."</td><td>Max</td><td>".$max76."</td>";
?>
<td> score </td><td><?php echo $summ;?></td></tr>
</table>
<?php // content="text/plain; charset=utf-8"
$connection = mysql_connect("127.0.0.1", "root", "fredsql") or die ("Unable to connect!");
mysql_query("SET NAMES 'utf8'");
$db = "tvicheck-st";
// select database
mysql_select_db($db) or die ("Unable to select database!");
// generate and execute query
$query = "INSERT INTO CT9(company, contact, email, type, filename, iccname, score, passbit, date, device, dsn, rankbit) VALUES('$company', '$contact', '$email', '$type', '$filename', '$iccname','$summ', '$passbit', NOW(), '$device', '$dsn', '$rankbit')";
$result = mysql_query($query) or die ("Error in query: $query. " . mysql_error());
mysql_close($connection);
require_once ('../jpgraph/jpgraph.php');
require_once ('../jpgraph/jpgraph_scatter.php');
//unlink('targetrgb.ti3');
for ( $j = 1; $j <= 20; $j+= 1) {
unlink($filename."p".$j.".txt");
}
unlink($filename."x.txt");
unlink($filename."px.txt");
unlink($filename."lab.txt");
?>
<tr>
<br />
<td align="center"><font size="-2"> © <a href="mailto:[email protected]">Fred Kuo</a>, 2010. All rights reserved.<br><a href="http://www.fredkuo.idv.tw/wordpress/?p=1025">Read more.</a><br>
</td>
</tr>
</body>
</html>