我需要从png图像中提取每个像素颜色并将其存储在数据库表中;
该表格包含以下列:id
,x
,y
,color
。
我做到了,但我需要一种更快的方法来做到这一点。
我的代码如下:
<?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);
?>
答案 0 :(得分:1)
不要对每个像素进行插入,而是将它们存储在数组中并使用
形式的质量插入INSERT INTO table VALUES (1,1,1),(2,2,2)