Productai

色彩标注服务

对图片内容进行色彩分析

调用说明

Python

PHP

Java

C#

cURL

from productai import Client

cli = Client(ACCESS_KEY_ID, SECRET_KEY)

# 获取全图颜色分析API
api = cli.get_color_analysis_api(sub_type='everything')

# 通过url来分析图片颜色
resp = api.query(image='http://xxxx', granularity='major', return_type='w3c')

# 或者直接上传本地图片来分析图片颜色
with open("zzzz.jpg", mode='rb') as search:
resp = api.query(image=search, granularity='major', return_type='w3c')
use ProductAI;
$product_ai = new ProductAI\API($access_key_id=ACCESS_KEY_ID, $secret_key=SECRET_KEY);

// 获取全图颜色分析API,通过url来分析图片颜色
$result = $product_ai->imageColorAnalysis($image='http://xxxx', $type='everything', $granularity='major', $return_type='w3c');

// 或者通过上传本地图片来分析图片颜色
$result = $product_ai->imageColorAnalysis($image='@zzzz.jpg', $type='everything', $granularity='major', $return_type='w3c');
import java.io.File;
import cn.productai.api.core.*;
import cn.productai.api.core.enums.*;
import cn.productai.api.pai.entity.classify.*;

// 设置API调用初始化参数
IProfile profile = new DefaultProfile();
profile.setAccessKeyId(ACCESS_KEY_ID);
profile.setSecretKey(SECRET_KEY);
profile.setVersion("1");
profile.setGlobalLanguage(LanguageType.Chinese);
IWebClient client = new DefaultProductAIClient(profile);

// 使用URL来分析图片颜色
ClassifyByImageUrlRequest request = new ClassifyByImageUrlRequest("color", "_0000072");
request.setUrl("https://xxxx");

// 或者使用本地文件来分析图片颜色
ClassifyByImageFileRequest request = new ClassifyByImageFileRequest("color", "_0000072");
request.setImageFile(new File("zzzz.jpg"));

request.getOptions().put("granularity", "major");
request.getOptions().put("return_type", "w3c");
request.setLanguage(LanguageType.Chinese);

ClassifyResponse response = client.getResponse(request);
String json = response.getResponseJsonString();
using System;
using MalongTech.ProductAI.Core;
using MalongTech.ProductAI.API.Entity.Color;

// 使用URL来分析图片颜色
var request = new ColorClassifyByImageUrlRequest()
{
Url="http://xxxx",
Language=LanguageType.Chinese,
SubType=SubType.EveryThing,
Granularity=Granularity.Major,
ReturnType=ColorReturnType.Basic
};

// 或者使用本地文件来分析图片颜色
var request = new ColorClassifyByImageFileRequest()
{
ImageFile=new System.IO.FileInfo(@".\zzzz.jpg"),
Language=LanguageType.Chinese,
SubType=SubType.EveryThing,
Granularity=Granularity.Major,
ReturnType=ColorReturnType.CNCS
};

// 调用服务
var response = client.GetResponse(request);
# 使用URL作为参数调用API
curl -X POST \
-H 'x-ca-version: 1.0' \
-H 'x-ca-accesskeyid: ACCESS_KEY_ID' \
-d 'url=http://xxxx.jpg&granularity=major&return_type=w3c' \
https://api.productai.cn/color/_0000072

# 或者使用本地文件作为参数调用API
curl -X POST \
-H 'x-ca-version: 1.0' \
-H 'x-ca-accesskeyid: ACCESS_KEY_ID' \
-F 'search=@zzzz.jpg' \
-F 'granularity=major' \
-F 'return_type=w3c' \
https://api.productai.cn/color/_0000072

注:关于sub_type的类型,请分别参见 全图色彩分析人物色彩分析物品色彩分析

输入参数说明

参数名称类型说明必选限制
url字符串Query图片的链接,query方法第一个参数与search参数二选一
search文件Query图片文件内容,query方法第一个参数与url参数二选一
granularity字符串分析粒度必须是major, detailed, dominant三个值之一,请参考granularity参数
return_type字符串返回值类型必须是basic, w3c, ncs, cncs四个值之一,请参考return_type参数

granularity参数

以全图搜索为例,使用下面图片进行讲解
示例图片1

选项结果说明
major             只返回整个图片最主要的两种颜色
detailed                                  返回图片内更多的颜色
dominant      只返回一个图片主颜色

return_type参数

选项结果说明
basic      
w3c      深天蓝W3C的CSS工作组发布CSS颜色模块
ncs      1050-R90BNCS色卡是来自瑞典的色彩设计工具,它以眼睛看颜色的方式来描述颜色。表面颜色定义在NCS色卡中,同时给出一个色彩编号。
cncs       { “chroma”: “Medium”, “cncs”: “1196022”, “color”: “蓝紫色”, “lightness”: “Medium”, “rgb”: [“107”, “160”, “206”]}CNCS是由中国纺织信息中心联合国际国内色彩专家和机构,经多年精心调研而开发的色彩体系,力求为服装设计师和相关机构提供当前最时尚的色彩信息和色彩管理解决方案。

输出字段说明

200 HTTP状态码

服务器端成功处理,并返回结果

{
"is_err": 0,
"request_id": "d54dab1a-e098-11e7-bb18-eea500941bf4",
"results": [
{
"cncs": {
"chroma": "Medium",
"cncs": "1196022",
"color": "蓝紫色",
"lightness": "Medium",
"rgb": [
"107",
"160",
"206"
]
},
"freq": 1,
"hex": "#5BA3D3",
"rgb": [
91,
163,
211
]
}
],
"time": 0.149
}
结果字段类型说明
is_err整数 1表示有错误,0表示没有错误
request_id字符串本次调用的唯一ID,可以用于和ProductAI团队进行联调分析
results数组颜色分析结果集合
cncs字典cncs相关结果信息
ncs字符串ncs相关结果信息
basic字符串基础颜色结果信息
w3c字符串w3c标准的结果信息
freq整数颜色比例
hex字符串16进制颜色码
rgb数组RGB颜色码
time浮点数服务器端计算时间

非200 HTTP状态码

服务器端遇到错误

{
"data": {
"is_err": 1,
"message": "Download image failed.",
"request_id": "224b2a28-e08f-11e7-bb18-eea500941bf4",
"time": 0.013
},
"status": 408
}
结果字段类型说明
data字典所有信息包装到data中
status整数 HTTP状态码
is_err整数 1表示有错误,0表示没有错误
message字符串错误信息详情
request_id字符串本次调用的唯一ID,可以用于和ProductAI团队进行联调分析
time浮点数服务器端计算时间,单位为秒

错误信息说明

SDK/API使用http状态码来通知客户端本次调用成功和失败

http状态码error_code说明
200N/a数据提交成功
400N/a参数granularity不在指定值范围,或参数return_type不在指定值范围,或参数loc不符合规范,或Query图片为空
408N/aQuery图片下载失败,或Query图片格式解析失败,或图片颜色分析失败,或上游计算服务超时

服务列表

目前有全图,前景物体,人物三种分析类型。三者之间的区别,使用下面图片进行讲解(granularity参数为major)
示例图片1

分析类别结果说明
全图色彩分析             灰色背景,和前景人物的暗红色主色调会被分析出来
人物色彩分析                    可以看到,返回的颜色以人物身上服装颜色为主
物品色彩分析                    由于本图去除背景色后,物体即为人物,所以返回颜色与人物色彩分析结果类似

全图色彩分析 v1.0

对整张图片进行色彩分析,依据输入参数返回对应体系的色彩。对应的sub_type参数填everything

Python

PHP

Java

C#

cURL

from productai import Client

cli = Client(ACCESS_KEY_ID, SECRET_KEY)

# 获取全图颜色分析API
api = cli.get_color_analysis_api(sub_type='everything')
use ProductAI;
$product_ai = new ProductAI\API($access_key_id=ACCESS_KEY_ID, $secret_key=SECRET_KEY);

//获取全图颜色分析API
$result = $product_ai->imageColorAnalysis($image='http://xxxx', $type='everything', $granularity='xxx', $return_type='xxx');
IProfile profile = new DefaultProfile();
profile.setAccessKeyId(ACCESS_KEY_ID);
profile.setSecretKey(SECRET_KEY);
profile.setVersion("1");
profile.setGlobalLanguage(LanguageType.Chinese);
IWebClient client = new DefaultProductAIClient(profile);

//获取全图颜色分析API
ClassifyByImageUrlRequest request = new ClassifyByImageUrlRequest("color", "_0000072");
request.getOptions().put("granularity", "xxx");
request.getOptions().put("return_type", "xxx");
// 或者使用本地文件来分析图片颜色
var request = new ColorClassifyByImageUrlRequest()
{
Url="http://xxxx",
Language=LanguageType.Chinese,
SubType=SubType.EveryThing,
Granularity=Granularity.Major,
ReturnType=ColorReturnType.Basic
};

// 调用服务
var response = client.GetResponse(request);
# 获取全图颜色分析API
curl -X POST \
-H 'x-ca-version: 1.0' \
-H 'x-ca-accesskeyid: ACCESS_KEY_ID' \
-d 'url=http://xxx.jpg&granularity=xxx&return_type=xxx' \
https://api.productai.cn/color/_0000072

人物衣着色彩分析 v1.0

对图片中的时尚衣物进行色彩分析,去除掉了背景色彩和肤色,并依据输入参数返回对应体系的色彩。对应的sub_type参数填person_outfit

Python

PHP

Java

C#

cURL

from productai import Client

cli = Client(ACCESS_KEY_ID, SECRET_KEY)

# 获取人物颜色分析API
api = cli.get_color_analysis_api(sub_type='person_outfit')
use ProductAI;
$product_ai = new ProductAI\API($access_key_id=ACCESS_KEY_ID, $secret_key=SECRET_KEY);

//获取人物颜色分析API
$result = $product_ai->imageColorAnalysis($image='http://xxxx', $type='person_outfit', $granularity='xxx', $return_type='xxx');
IProfile profile = new DefaultProfile();
profile.setAccessKeyId(ACCESS_KEY_ID);
profile.setSecretKey(SECRET_KEY);
profile.setVersion("1");
profile.setGlobalLanguage(LanguageType.Chinese);
IWebClient client = new DefaultProductAIClient(profile);

//获取人物颜色分析API
ClassifyByImageUrlRequest request = new ClassifyByImageUrlRequest("color", "_0000074");
request.getOptions().put("granularity", "xxx");
request.getOptions().put("return_type", "xxx");
// 或者使用本地文件来分析图片颜色
var request = new ColorClassifyByImageUrlRequest()
{
Url="http://xxxx",
Language=LanguageType.Chinese,
SubType=SubType.PersonOutfit,
Granularity=Granularity.Major,
ReturnType=ColorReturnType.Basic
};

// 调用服务
var response = client.GetResponse(request);
# 获取人物颜色分析API
curl -X POST \
-H 'x-ca-version: 1.0' \
-H 'x-ca-accesskeyid: ACCESS_KEY_ID' \
-d 'url=http://xxx.jpg&granularity=xxx&return_type=xxx' \
https://api.productai.cn/color/_0000074

指定物体色彩分析 v1.0

去除掉了背景的颜色,并依据输入参数返回对应体系的色彩。对应的sub_type参数填foreground

Python

PHP

Java

C#

cURL

from productai import Client

cli = Client(ACCESS_KEY_ID, SECRET_KEY)

# 获取前景物体颜色分析API
api = cli.get_color_analysis_api(sub_type='foreground')
use ProductAI;
$product_ai = new ProductAI\API($access_key_id=ACCESS_KEY_ID, $secret_key=SECRET_KEY);

// 获取前景物体颜色分析API
$result = $product_ai->imageColorAnalysis($image='http://xxxx', $type='foreground', $granularity='xxx', $return_type='xxx');
IProfile profile = new DefaultProfile();
profile.setAccessKeyId(ACCESS_KEY_ID);
profile.setSecretKey(SECRET_KEY);
profile.setVersion("1");
profile.setGlobalLanguage(LanguageType.Chinese);
IWebClient client = new DefaultProductAIClient(profile);

//获取前景物体颜色分析API
ClassifyByImageUrlRequest request = new ClassifyByImageUrlRequest("color", "_0000073");
request.getOptions().put("granularity", "xxx");
request.getOptions().put("return_type", "xxx");
// 或者使用本地文件来分析图片颜色
var request = new ColorClassifyByImageUrlRequest()
{
Url="http://yyyy",
Language=LanguageType.Chinese,
SubType=SubType.Foreground,
Granularity=Granularity.Major,
ReturnType=ColorReturnType.Basic
};

// 调用服务
var response = client.GetResponse(request);
# 获取前景物体颜色分析API
curl -X POST \
-H 'x-ca-version: 1.0' \
-H 'x-ca-accesskeyid: ACCESS_KEY_ID' \
-d 'url=http://xxx.jpg&granularity=xxx&return_type=xxx' \
https://api.productai.cn/color/_0000073