0

PNG 画像から各ピクセルの色を抽出し、データベース テーブルに格納する必要があります。テーブルには次の列があります: idxycolor

私はそれをしましたが、これを行うにはより速い方法が必要です。

私のコードは次のとおりです。

<?php

session_start();

?>
<meta http-equiv="refresh" content="6000" >
<?php

if(isset($_SESSION['inserari']))print "inserari: ".$_SESSION['inserari'];
$_SESSION['inserari']=0;
require_once("../data-base-connection.php");
$im = ImageCreateFromPng("http://www.medievalbattlefield.com/harta-mod-1/x.png");

$maxo=4001;
$maxv=2235;
$result=mysql_query("
select * 
from `map_4001_2235` 
order by `id` desc
limit 1
");
$n=mysql_num_rows($result);
$id=0;
$cv=0;
$co=0;


if($n==1)
{
  while($row=mysql_fetch_array($result))
  {
    print " id ".$id=$row['id'];
    print " cx ".$cv=$row['x'];
    print " cy ".$co=$row['y'];
  }
  $co++;
  if($co==$maxo+1)$co=0;
}

for($a=$cv;$a<=$maxv;$a++)
{
  for($b=$co;$b<=$maxo;$b++)
  {

    //print "$a $b";
    //if(($b==1000)||($b==2000)||($b==3000)||($b==4000))print " indicator: ".$b;
    $id++;
    $_SESSION['inserari']++;
    $rgb = ImageColorAt($im, $b, $a);
    $c=dechex($rgb);

    mysql_query("
INSERT INTO `map_4001_2235` (
`id` ,
`x` ,
`y`,
`color`
)
VALUES (
'$id' ,  '$a',  '$b', '$c'
);
");
  }
  $co=0;
}

mysql_close($connection);

?>
4

1 に答える 1

1

ピクセルごとに挿入するのではなく、それらを配列に格納し、次の形式で一括挿入を使用します。

INSERT INTO table VALUES (1,1,1),(2,2,2)
于 2012-04-04T07:21:11.793 に答える