本文介紹Image Search服務PHP SDK的使用方法及樣本。
準備工作
- 在安裝和使用阿里雲SDK前,確保您已經註冊阿里雲帳號並產生存取金鑰(AccessKey)。具體請參見t1938336.html#task968。
- 下載Image SearchPHP SDK。
程式碼範例
完整程式碼範例如下。
<?php
//使用者根據自己下載包的情況進行引用
require_once "./aliyun-php-sdk-core/Config.php";
use ImageSearch\Request\V20190325\AddImageRequest;
use ImageSearch\Request\V20190325\SearchImageRequest;
use ImageSearch\Request\V20190325\DeleteImageRequest;
DefaultProfile::addEndPoint("<region>", "<region>", "ImageSearch", "imagesearch.<region>.aliyuncs.com");
$profile = DefaultProfile::getProfile("<region>", "<your-access-key-id>", "<your-access-key-secret>");
$client = new DefaultAcsClient($profile);
// 添加圖片
$addRequest = new AddImageRequest();
$addRequest->setInstanceName("demo");
$addRequest->setProductId("test");
$addRequest->setPicName("test");
$content = file_get_contents("/home/admin/demo.jpg");
$encodePicContent = base64_encode($content);
$addRequest->setPicContent($encodePicContent);
// 選填,是否需要進行主體識別,預設為true。
// 1.為true時,由系統進行主體識別,以識別的主體進行搜尋,主體識別結果可在Response中擷取。
// 2. 為false時,則不進行主體識別,以整張圖進行搜尋。
//$addRequest->setCrop("false");
//$addRequest->setCrop("true");
// 選填,圖片的主體地區,格式為 x1,x2,y1,y2, 其中 x1,y1 是左上方的點,x2,y2是右下角的點。
// 若使用者佈建了Region,則不論Crop參數為何值,都將以使用者輸入Region進行搜尋。
// $addRequest->setRegion("100,300,100,300");
try {
$addResponse = $client->getAcsResponse($addRequest);
print_r($addResponse);
} catch(ServerException $e) {
print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
} catch(ClientException $e) {
print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
}
// 查詢圖片
$searchRequest = new SearchImageRequest();
$searchRequest->setInstanceName("demo");
$searchRequest->setType("SearchByName");
$searchRequest->setProductId("test");
$searchRequest->setPicName("test");
try {
$searchResponse = $client->getAcsResponse($searchRequest);
print_r($searchResponse);
} catch(ServerException $e) {
print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
} catch(ClientException $e) {
print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
}
// 刪除圖片
$deleteRequest = new DeleteImageRequest();
$deleteRequest->setInstanceName("demo");
$deleteRequest->setProductId("test");
try {
$deleteResponse = $client->getAcsResponse($deleteRequest);
print_r($deleteResponse);
} catch(ServerException $e) {
print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
} catch(ClientException $e) {
print "Error: " . $e->getErrorCode() . " Message: " . $e->getMessage() . "\n";
}