-3

重複の可能性:
画像データを含むテキスト ファイルを解析する

テキストファイルから画像データを取得するためのコードは次のとおりです。

while (!feof($fh)) {
    $line = fgets($fh);
    $lines[] = $line;
    $match1 ="/^[0-9]{1,3},[0-9]{1,3}/";
    $match2 = "/[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},(?:,?[0-9]{1,3})*(?:\.[0-9]{1,10})?\b/";

    $parts  = preg_match($match1, $line, $regs);
    $parts2 = preg_match($match2, $line, $regs2);
    foreach($regs as $key => $lame) {
        $lamer[] = $lame;
    }
    foreach($regs2 as $key => $lame2) {
        $lamer2[] = $lame2;
    }
}

最初の preg_match は座標を取得し、2 番目は rgba() データを取得します。これをJavaScript配列に入れようとしていますが、次のエラーが発生しています:

SyntaxError: too many constructor arguments

JavaScript配列にはデータが多すぎると思います。

今、配列内のデータ、つまりアルファが 0 の rgba を持つ座標をどのようにスキップできるか、またはスキップできるかどうか疑問に思っています。つまり、両方をスキップする必要があります。

また、2 つの一致を 1 つに結合して、それが簡単になるかどうかを確認する必要があるかどうかも疑問に思っていますが、その方法がわかりません。

300x180の画像である私が扱っているデータは次のとおりです。

41,6: (255,255,255, 0) #FFFFFF00 srgba(255,255,255,0)
42,6: (255,255,255, 0) #FFFFFF00 srgba(255,255,255,0)
90,35: ( 77, 80, 12, 98) #4D500C62 srgba(77,80,12,0.384314)
91,35: ( 95, 99, 13, 78) #5F630D4E srgba(95,99,13,0.305882)
92,35: ( 96, 99, 31, 90) #60631F5A srgba(96,99,31,0.352941)
93,35: (106,110, 14, 68) #6A6E0E44 srgba(106,110,14,0.266667)
94,35: ( 95, 99, 13, 78) #5F630D4E srgba(95,99,13,0.305882)
4

1 に答える 1

0

JavaScript 正規表現パターンを使用する

^(\\d+),(\\d+)[^#]+#.{6}(?!00)[^(]+\\((\\d+),(\\d+),(\\d+),(\\d*(?:\\.\\d*)?)

このデモを確認してください。

于 2012-10-05T20:23:41.027 に答える