本篇文章给大家谈谈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怎么搜图片的信息别忘了在本站进行查找喔。