php图片识别文字
① php提取文字
这个有点像读取图片验证码
记得以前有人写过,不过只是针对某个特定网站特定图片样式写的。
大概原理:
图片的文字是无法直接读取,通过读取图片像素模糊判断是可以的。
先是读取图片,然后根据图片,调整一下对比度(网上有程序代码),让图片的文字更突出,背景更淡化。
然后嵌套循环,每行每列读取图片像素,找出规律对比一下。
判断图片字符。
ps:这个规律得有个好的算法和思路
比如文字“一”
读出的像素数组可能是在
a[5,4] a[6,4] a[7,4] a[8,4] a[9,4] a[10,4]
这些地方有颜色,而且颜色大概相同,
你再建个字符规律库,“一”的可能是 1,1,1,1,1,1,1
两个通过转换算法相互对比一下,如果大概符合,就可以判断是字符“一”。
误差会有的,就算官方的扫描程序也会认错字。
我只随便说一下,不一定正确。你可以在网站搜下相关东西。
② php 如何把图片上的文字提取出来
提取图片上文字,必须用到识别功能,即OCR。
自己写很难,因为要有识别库。
建议使用开源的Tesserac识别库。
目前也有很多成熟的OCR的API,可以看下。
③ 请问php有办法识别一张图片色块分布吗比如找出最适合添加文字的地方
理论上肯定是可以的。不过这应该是一个很高深的东西。所以,我只能给你我很粗浅的方法:
一:写个函数,这个函数的主要功能是找出一张图片上的主要颜色(代码在最后面)
二:把一张图片有GD库分成9份(3*3)或更多份,然后用第一个函数来取得每一份小图的主要颜色。
三:比对这几份小图的颜色,看哪一份的颜色是你需要的。
如果你原意,你也可以切很多份,比如10000份(100*100),然后计算这10000个颜色的中你需要的颜色的分布,找出你需要的区域。
$i = imagecreatefromjpeg("image.jpg");
for ($x=0;$x<imagesx($i);$x++) {
for ($y=0;$y<imagesy($i);$y++) {
$rgb = imagecolorat($i,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> & 0xFF;
$b = $rgb & 0xFF;
$rTotal += $r;
$gTotal += $g;
$bTotal += $b;
$total++;
}
}
$rAverage = round($rTotal/$total);
$gAverage = round($gTotal/$total);
$bAverage = round($bTotal/$total);
④ php 或 js 怎么在图片上添加文字和图片,
在图片上添加文件,可以的,不过需要借助ocr文字识别技术,方法如下:
打开ocr---高级识别---添加文件---识别;
然后呢,在右边直接打上文字,最后,可以保持为图片或者是word!
对上面的方法有所疑问的欢迎提问哦!!!
⑤ 用php代码怎么以背景图片加上文字生成新的图片,然后在标题处绝对调用该图片
<?php
ob_clean(); //清除输出缓存
header("Content-type:image/jpeg"); //设置输出类型
$img="images/test.jpg"; //背景图片名
if(isset($_GET["img"]))$img=$_GET["img"]; //也可以通过img参数传入
$im=imagecreatefromjpeg($img); //读入背景图片
$text="文字内容"; //要加上的文字内容
if(isset($_GET["text"]))$text=$_GET["text"]; //也可以通过text参数传入
$fontFile="xxx.ttf"; //字体文件名,必须要
$fontSize=36; //字体尺寸
$fontColor=ImageColorAllocate($im,0,0,0); //字体颜色,这里是黑色
$textAngle=0; //文字显示的角度,0表示水平显示
$textLeft=20; //文字显示的x坐标
$textTop=60; //文字显示的y坐标
imagefttext($im,$fontSize,$textAngle,$textLeft,$textTop,$fontColor,$fontFile,$text); //把文字覆盖到图片上
Imagejpeg($im); //输出图片
ImageDestroy($im); //销毁图片
?>
把以上文字保存为php文件,比如 img.php
然后在需要调用图片的地方用 <img src="img.php?img=背景图片文件路径&text=要加上的文字"/> 来调用
比如 <img src="img.php?img=images/back.jpg&text=你好"/>
⑥ 如何用PHP识别一张图片的某一处位置(图片相当于背景)。然后在这个位置可以编辑文字,然后打印(PDF)
使用php
位置没有办法自动识别,但可以指定,例如可以指定x和y轴(20,25)