0
我需要從PNG圖像中提取每個像素顏色並將其存儲在數據庫表中; 該表具有以下列:id
,x
,y
,color
。從PNG圖像中提取像素顏色
我做到了,但我需要更快的方式來做到這一點。
我的代碼如下:
<?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);
?>
形式使用大容量插入,但有12.000.000記錄 – 2012-04-04 07:30:34
這正是爲什麼。 – 2012-04-04 07:32:22
ty,我會試試這個...但我不認爲我可以在單個查詢中注入12密耳的數據 – 2012-04-04 07:36:27