首先创建应用:
https://console.bce.baidu.com/ai/?_=&fromai=1#/ai/imagesearch/overview/index


会有2参数要用到:
然后申请建库

随便传几张图片到里面。

接口:ImageIdentification.php

<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2021/4/12* Time: 15:07*/namespace app\common;/*** AI图片搜索* Class ImageIdentification* @package app\common*/
class ImageIdentification
{/*** @var string*/protected static $client_id;/*** @var string*/protected static $client_secret;/*** 构造函数* ImageIdentification constructor.*/protected static function construct(){self::$client_id = 'PM4vfxjGTZt8SQBg0YhAtNDb';self::$client_secret = 'secret';}/*** @param $path* @param string $name* @param int $id* @return string* @throws \ImagickException*/public static function addImageDent($path, $name = '杜小明', $id = 1){$path = self::reduceSize($path);$token = static::getToken();$url = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/add?access_token=' . $token;$img = file_get_contents($path);$img = base64_encode($img);$bodys = array('brief' => '{"name":"' . $name . '", "id":"' . $id . '"}','image' => $img,'tags' => "1,1");$res = self::request_posts_http($url, $bodys);$res = JD($res);unlink($path);return isset($res['cont_sign']) ? $res['cont_sign'] : 'error';}/*** 搜索* @param $path* @return array* @throws \ImagickException*/public static function searchImageDent($path){#搜索$path = self::reduceSize($path);$token = static::getToken();$url = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/search?access_token=' . $token;$img = file_get_contents($path);$img = base64_encode($img);$bodys = array('image' => $img,'pn' => 0,#从第0位开始搜'rn' => 1#搜索的长度,这里只搜索一张图片,可以设置多点);$res = self::request_posts_http($url, $bodys);$res = JD($res);$cont_sign = [];if ($res['result_num']) {foreach ($res['result'] as $re) {$cont_sign[] = $re['cont_sign'];}}return $cont_sign;}/*** @param $src_img* @return string* @throws \ImagickException*/protected static function reduceSize($src_img){$ai = new \Imagick($src_img);$ai->thumbnailImage(300, 300, true);#如果给定第三个参数true 的话则按最大边300处理$path = ROOT_PATH . str_shuffle(md5(time())) . '.jpg';$ai->writeImage($path);#$path = self::reduceQuality($path);return $path;}/*** @param $src_img* @param int $quality* @param string $dest_img* @return string* @throws \ImagickException*/protected static function reduceQuality($src_img, $quality = 70, $dest_img = ''){if (!$dest_img) {$dest_img = $src_img;}$imagick = new \Imagick();$imagick->readImage($src_img);$imagick->setImageCompression(\Imagick::COMPRESSION_JPEG);$imagick->setImageCompressionQuality($quality);$imagick->writeImage($dest_img);return $dest_img;}/*** @param string $url* @param string $param* @return bool|string*/protected static function request_posts_http($url = '', $param = ''){if (empty($url) || empty($param)) {return false;}$postUrl = $url;$curlPost = $param;// 初始化curl$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $postUrl);curl_setopt($curl, CURLOPT_HEADER, 0);// 要求结果为字符串且输出到屏幕上curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);// post提交方式curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);// 运行curl$data = curl_exec($curl);curl_close($curl);return $data;}/*** @param string $url* @param string $param* @return bool|string*/protected static function request_post($url = '', $param = ''){if (empty($url) || empty($param)) {return false;}$postUrl = $url;$curlPost = $param;$curl = curl_init();//初始化curlcurl_setopt($curl, CURLOPT_URL, $postUrl);//抓取指定网页curl_setopt($curl, CURLOPT_HEADER, 0);//设置headercurl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($curl, CURLOPT_POST, 1);//post提交方式curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);$data = curl_exec($curl);//运行curlcurl_close($curl);return $data;}/*** @return string*/protected static function getToken(){self::construct();$url = 'https://aip.baidubce.com/oauth/2.0/token';$post_data['grant_type'] = 'client_credentials';$post_data['client_id'] = self::$client_id;$post_data['client_secret'] = self::$client_secret;$o = "";foreach ($post_data as $k => $v) {$o .= "$k=" . urlencode($v) . "&";}$post_data = substr($o, 0, -1);$res = self::request_post($url, $post_data);$res = JD($res);return isset($res['access_token']) ? $res['access_token'] : 'error';}}

调用方法:

ImageIdentification::searchImageDent($path)

PHP 百度图片搜索功能API接口开发相关推荐

  1. 淘宝/天猫/1688拍立淘API接口(以图搜商品API接口,图片搜索API接口,图片搜索商品API接口)代码对接教程

    淘宝/天猫/1688拍立淘API接口(以图搜商品API接口,图片搜索API接口,图片搜索商品API接口)代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018 ...

  2. 百度搜索排名API接口PC返回JSON数据格式

    百度搜索排名API接口返回JSON数据格式 写个笔记, 记录一下 https://www.baidu.com/s?wd=新信息&pn=50&rn=50&tn=json 参数说明 ...

  3. 寻找百度图片搜索接口--three

    我是怎么破解他的objurl的呢,其实怎么破解是还是百度自己告诉我的...你想啊,他为啥能在开始我看到的那个js 中显示成正常的url地址呢?为什么url中的objurl 知识编码了一下 :  /   ...

  4. php 接口 2.0,YII 2.0 API接口开发

    YII2.0 API接口开发 首先先安装 YII2.0 高级模板(安装请参考其他教程) 准备 添加数据库配置 common/config/main-local.php image 把backend目录 ...

  5. Android建立网络连接,利用JSON数据获取百度图片搜索结果及GSON的简单使用

    1.建立网络连接的基本方式 Android中建立网络连接最主要的方式是利用HttpURLConnection,示例如下: public class HttpUtil {public static by ...

  6. 基于百度图片搜索的vscode插件——超级鼓励师

    简介 超级鼓励师是一款vscode插件,基于百度图片搜索服务,根据用户设置的关键字获取图片.并通过webview展示给用户.缓解程序猿/媛工作压力,给予你爱的鼓励. vscode 插件市场搜索超级鼓励 ...

  7. 【商品详情 +关键词搜索】API 接口系列

    首先,大家要到官方主页去申请一个 appkey,这个是做什么用的呢?App Key 是应用的唯一标识,TOP 通过 App Key 来鉴别应用的身份.AppSecret 是 TOP 给应用分配的密钥, ...

  8. YesApi-超强的API接口开发神器

    YesApi 是一个免费.简单又好用的API低代码开发平台.定位:YesApi = API开发 + API测试 + API文档 + API调用 + API后端,让你用一个账号,就能轻松搞定API接口开 ...

  9. api接口加密_谈谈API接口开发中的安全性如何解决

    如今各种API接口层出不穷,一个API的好与不好可以从很多方面来考量,其中"安全性"就是一个API接口最基本也是最重要的一个特点.本文就来跟大家聊聊关于API接口开发的安全性问题. ...

最新文章

  1. R语言构建文本分类模型:文本数据预处理、构建词袋模型(bag of words)、构建xgboost文本分类模型、xgboost模型预测推理并使用混淆矩阵评估模型、可视化模型预测的概率分布
  2. mybatis整合redis
  3. gitd mysql_MySQL GTID (一)
  4. php学籍信息管理系统心得_php实现学生管理系统
  5. Rust创建项目的两种方式
  6. NLP 自然语言分析理解
  7. vs2019,C#,MySQL创建图书管理系统3(管理员相关页面的布局和设计实现,图书显示,图书添加)
  8. Linux(Centos7) 报 “RTNETLINK answers: File exists” 问题的解决
  9. FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding个人理解
  10. uni-app学习路线与建议
  11. 简单易懂的CRC校验原理阐述
  12. 四川bh百汇云商城运营中
  13. 微信小程序——搭建自己的服务器
  14. Python: pathlib基础用法
  15. 金蝶cloud 常用数据库表
  16. table css个人简历的实现 美观 简洁
  17. 行业研究报告-全球与中国吊钩市场现状及未来发展趋势
  18. 【电子学会】2021年03月图形化四级 -- 十字回文诗
  19. 最新云海授权系统源码绿色版+UI非常好看
  20. 信号的模拟频率与数字频率的关系

热门文章

  1. error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such
  2. 阿里执行副主席蔡崇信投资NBA篮网队;工信部约谈运营商,不得限制用户资费选择丨价值早报
  3. 企业办理CMMI3级认证,需要做哪些工作?
  4. word使用计算机题,(word)计算机基础考试试题及答案.doc
  5. 从输入URL到网页呈现的过程
  6. android键盘广告,android键盘钢琴Lite郑永修改版+去广告
  7. SAP MM批次管理(2)批次主数据--大海
  8. 解决:RuntimeError: CUDA out of memory. Tried to allocate 64.00 MiB (GPU 0; 4.00 GiB total capacity; 2
  9. Kotlin协程在项目中的实际应用
  10. 阿里云盘内测申请_阿里云网盘强势来袭,内测资格速速申请