i have been able to read the data from a text file using Imagemagick from http://www.imagemagick.org.
and i get
0,0: (255,255,255, 0) #FFFFFF00 srgba(255,255,255,0)
1,0: (255,255,255, 0) #FFFFFF00 srgba(255,255,255,0)
2,0: (255,255,255, 0) #FFFFFF00 srgba(255,255,255,0)
40,23: (162,167, 32, 24) #A2A72018 srgba(162,167,32,0.0941176)
41,23: (255,255,255, 0) #FFFFFF00 srgba(255,255,255,0)
42,23: (162,166, 48, 40) #A2A63028 srgba(162,166,48,0.156863)
43,23: (162,166, 47, 40) #A2A62F28 srgba(162,166,47,0.156863)
i am not good with regular expressions what kinda of expression would i use to
get the coords at the beginning and the rgba() at the end.
ok i have kinda figured out the regular expression
here is a par of it
/rgba([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9].[0-9]{1-9}/gi
but the last part is not matching to the decimal part of the rgba().
ok i know its been awhile and i am not sure if i should start a new thread
but i have figured out how to remove to remove the two middle parts, all the parentheses
and srgba, also the lines with zero alpha, but somehow it leaves an open space in the text file. if there is any improvements that anybody can see.
$fh = fopen("pcmanD.txt", "r");
$fg = fopen("pcmanJ.txt", "wt");
$new_array = ""; $parts = "";
while (!feof($fh)) {
$line = fgets($fh);
$lines[] = $line;
$newword = "";
$match1 ="/:s?s?(s?s?d+,s?s?d+,s?s?d+,s?s?d+)s?s?#[a-zA-Z0-9]{6,8}s?s?srgba/";
$match2 ="/^ss?/";
$match3 = "/s(/";
$match4 = "/)/";
$match5 = "/[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},[0-9]{1,3},0[^.]/";
$parts1 = preg_replace($match1,"", $line );
$parts2 = preg_replace($match2,"", $parts1 );
$parts3 = preg_replace($match3,",", $parts2 );
$parts4 = preg_replace($match4,"", $parts3 );
$parts5 = preg_replace($match5,"",$parts4);
echo "<pre>";
print_r($parts5);
echo "</pre>";
fwrite($fg, $parts5);
}
fclose($fg);
fclose($fh);
but new problem arises with this code where i get double or triple on the floating points
after the match.
$thisisit[] = "";
$thisisit2[] = "";
$countThis = 0;
$fh = fopen("sometext.txt", "r");
$new_array = ""; $parts = "";
while (!feof($fh)) {
$line = fgets($fh);
$line2 = $line;
$newword = "";
$match1 ="/^s*?[d]+,[d]+/";
$parts1 = preg_match($match1, $line, $regs);
foreach($regs as $key => $lame) {
$thisisit[] = $lame;
}
$match2 ="/(?:(d{1,3},d{1,3},))(d{1,3},d{1,3},d{1,3},[01][.]?[d]*)/";
$parts2 = preg_match($match2, $line2, $regs2);
foreach($regs2 as $key2 => $lame2) {
$thisisit2[] =$lame2;
}
$countLame = count($thisisit);
}
echo "</script>";
$newCounter = 0;
for($i = 0; $i < (500); $i++) {
echo $thisisit[$i] . "<br />";
echo $thisisit2[$newCounter] . "<br />" ;
$newCounter = $newCounter +4;
}
fclose($fh);
here is some text in the text file i am working on
42,23,162,166,48,0.156863
43,23,162,166,47,0.156863
44,23,167,170,67,0.219608
45,23,162,166,47,0.156863
46,23,167,170,67,0.219608
47,23,162,166,37,0.117647
48,23,162,167,32,0.0941176
86,23,163,167,40,0.12549
87,23,160,164,47,0.164706
88,23,188,190,122,0.352941
86,24,233,234,197,0.486275
87,24,251,250,250,1
88,24,251,250,250,1
89,24,251,250,250,1
See Question&Answers more detail:
os