Google Cloud Vision APIの新機能で、支配的な色の機能を使用して画像から色を抽出します。以下Terrence Ryan's BlogGoogle Cloud Vision IMAGE_PROPERTIESは、どの画像でも、maxResultsパラメータの値に関係なく、10色の結果を返します。
$cvurl = "https://vision.googleapis.com/v1/images:annotate?key=API_KEY";
$data = file_get_contents($cache_job);
$base64 = base64_encode($data);
//Create this JSON
$r_json ='{
"requests": [
{
"image": {
"content":"' . $base64. '"
},
"features": [
{
"type": "IMAGE_PROPERTIES",
"maxResults": 200
}
]
}
]
}';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $cvurl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $r_json);
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($status != 200) {
die("Error: $cvurl failed status $status");
}
上のコードの作品ベースであるが、私はそれでいくつかの問題を持って私のコードです。明らかに画像上にあるが、APIレスポンスには含まれていない色がいくつかあります。だから私は結果の数を増やすことで解決できると思ったが、 "maxResults"(Google APIドキュメント:返される結果の数)パラメータを任意の値に変更しても、レスポンスには何の影響も与えないことがわかった。たとえパラメータを10未満に設定したとしても、画像を変更しても結果の数は10色に固定されます。 GoogleのAPIドキュメントには何も言われていないので、ここにいる皆さんが経験したことがあるのだろうかと思っていました。
私は、彼らは私が色を抽出し、色のユーザーの選択に追加しますれた画像、または別のWebページのさえスクリーンショットをアップロードすることができ、自分のWebページのテーマの色を選択する上で、私のユーザーを支援するアプリケーションを作成していますカラーホイール/ピッカーを与えるだけではありません。事は、ときどき明白な色が返されたり検出されないことがあります。例では、Facebookのログインページと偶数ページの全体のバナーであることで色の青を持っていないAPIのレスポンスのスクリーンショットです。 –