加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 解析包含图像数据的文本文件

发布时间:2020-12-13 13:49:34 所属栏目:PHP教程 来源:网络整理
导读:我已经能够使用 Imagemagick从 http://www.imagemagick.org读取文本文件中的数据. 我明白了 0,0: (255,255,0) #FFFFFF00 srgba(255,0)1,0)2,0)40,23: (162,167,32,24) #A2A72018 srgba(162,0.0941176)41,23: (255,0)42,166,48,40) #A2A63028 srgba(162,0.156
我已经能够使用 Imagemagick从 http://www.imagemagick.org读取文本文件中的数据.

我明白了

0,0: (255,255,0)  #FFFFFF00  srgba(255,0)
1,0)
2,0)


40,23: (162,167,32,24)  #A2A72018  srgba(162,0.0941176)
41,23: (255,0)
42,166,48,40)  #A2A63028  srgba(162,0.156863)
43,47,40)  #A2A62F28  srgba(162,0.156863)

我对正则表达式不熟悉我将使用哪种表达方式
得到开头的坐标和最后的rgba().

好吧,我有点想通了正则表达式
这是它的一部分

/rgba([0-9]{1,3},[0-9]{1,[0-9].[0-9]{1-9}/gi

但最后一部分与rgba()的小数部分不匹配.

好吧,我知道它已经有一段时间了,我不确定我是否应该开始一个新线程

但我已经想出如何删除以删除两个中间部分,所有括号
和srgba,也是零alpha的行,但不知何故,它在文本文件中留下了一个空白区域.如果有任何改进,任何人都可以看到.

$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?#[a-zA-Z0-9]{6,8}s?s?srgba/";
    $match2 ="/^ss?/";
    $match3 = "/s(/";
    $match4 = "/)/";
    $match5 = "/[0-9]{1,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);

但是这个代码出现了新的问题,我在浮点上得到了两倍或三倍
比赛结束后.

$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,d{1,))(d{1,[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);

这是我正在处理的文本文件中的一些文本

42,23,162,0.156863
 43,0.156863
 44,170,67,0.219608
 45,0.156863
 46,0.219608
 47,37,0.117647
 48,0.0941176
                                      86,163,40,0.12549
 87,160,164,0.164706
 88,188,190,122,0.352941
 86,24,233,234,197,0.486275
 87,251,250,1
 88,1
 89,1
> '0,0)'.match(/^([^:]+) *: *(([^)]+))/)
[ '0,0)','0,0','255,index: 0,input: '0,0)' ]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读