2012-04-04 17 views
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); 

?> 

答えて

1

ピクセルあたりの挿入を行いますが、配列に格納し、

INSERT INTO table VALUES (1,1,1),(2,2,2) 
+0

の形で大量のインサートを使用しますがありますしないでください12.000.000 records –

+0

それはまさにその理由です。 –

+0

ty、これを試してみます...しかし、私は1つのクエリで12ミルのデータを注入することはできませんと考えています –

関連する問題