首页 开发编程 正文

php怎么搜图片 phpvuejs怎么用照片搜索图片

$otherImgHash){if(file_exists($imgHash)file_exists($otherImgHash)){$imgHash=$this-run($imgHash);==strlen($otherImgHash))returnfalse;$count=0;$len=strlen($imgHash);==$ot...

本篇文章给大家谈谈php怎么搜图片,以及php的图片对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录:

php+vue.js怎么用照片搜索相似照片

需要工具:电脑、浏览器、搜索引擎

一、首先选择任意浏览器,点击打开。

二、然后打开搜索,可以看到搜索框有一个照相机的小图标。

三、点一下相机的小图标,会提示拖拽一张照片或者上传一张照片,这个根据自己的情况选择。

四、这里我们选择上传,选一张自己想找相似的图片,双击图片。

五、好了,这个时候就搜索出了图片的来源和出处,还有类似的图片。

PHP如何获取服务器图片

你在上传图片的时候,把图片地址存到数据库内,直接查询输出就好了

如果不是通过代码上传的,www文件夹是根目录文件夹,图片地址为:http://你的域名/img/name.jpg

用php 如何把某个盘中的所有图片检索出来?

使用opendir递归打开根目录已经下面的子目录,然后使用 glob函数直接glob("*.jpg") 枚举.jpg这样格式的文件,直接到数组里面,很省事,思路如此!

php怎么实现根据图片搜索图片功能

php爱好者 们很对php开发的追求是永不止步的,今天偶然想起来了 发下

php怎么实现相似图片的搜索呢?

其中的原理来解释下

1、缩小尺寸。将图片缩小到8×8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。

2、简化色彩。将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。

3、计算平均值。计算所有64个像素的灰度平均值。

4、比较像素的灰度。将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。

5、计算哈希值。将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。得到指纹以后,就可以对比不同的图片,看看64位中有多少位是不一样的。

使用代码

hash($f);

}

return $isString ? $result[0] : $result;

}

public function checkIsSimilarImg($imgHash, $otherImgHash){

if (file_exists($imgHash) file_exists($otherImgHash)){

$imgHash = $this-run($imgHash);

$otherImgHash = $this-run($otherImgHash);

}

if (strlen($imgHash) !== strlen($otherImgHash)) return false;

$count = 0;

$len = strlen($imgHash);

for($i=0;$i$len;$i++){

if ($imgHash{$i} !== $otherImgHash{$i}){

$count++;

}

}

return $count = (5 * $rate * $rate) ? true : false;

}

public function hash($file){

if (!file_exists($file)){

return false;

}

$height = 8 * $this-rate;

$width = 8 * $this-rate;

$img = imagecreatetruecolor($width, $height);

list($w, $h) = getimagesize($file);

$source = $this-createImg($file);

imagecopyresampled($img, $source, 0, 0, 0, 0, $width, $height, $w, $h);

$value = $this-getHashValue($img);

imagedestroy($img);

return $value;

}

public function getHashValue($img){

$width = imagesx($img);

$height = imagesy($img);

$total = 0;

$array = array();

for ($y=0;$y$height;$y++){

for ($x=0;$x$width;$x++){

$gray = ( imagecolorat($img, $x, $y) 8 ) 0xFF;

if (!is_array($array[$y])){

$array[$y] = array();

}

$array[$y][$x] = $gray;

$total += $gray;

}

}

$average = intval($total / (64 * $this-rate * $this-rate));

$result = '';

for ($y=0;$y$height;$y++){

for ($x=0;$x$width;$x++){

if ($array[$y][$x] = $average){

$result .= '1';

}else{

$result .= '0';

}

}

}

return $result;

}

public function createImg($file){

$ext = $this-getFileExt($file);

if ($ext === 'jpeg') $ext = 'jpg';

$img = null;

switch ($ext){

case 'png' : $img = imagecreatefrompng($file);break;

case 'jpg' : $img = imagecreatefromjpeg($file);break;

case 'gif' : $img = imagecreatefromgif($file);

}

return $img;

}

public function getFileExt($file){

$infos = explode('.', $file);

$ext = strtolower($infos[count($infos) 1]);

return $ext;

}

}

调用方式如下:

require_once "Imghash.class.php";

$instance = ImgHash::getInstance();

$result = $instance-checkIsSimilarImg('chenyin/IMG_3214.png', 'chenyin/IMG_3212.JPG');

如果$result值为true, 则表明2个图片相似,否则不相似。

php怎么搜图片的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php的图片、php怎么搜图片的信息别忘了在本站进行查找喔。

本文转载自互联网,如有侵权,联系删除