全部产品
云市场

.Net SDK

更新时间:2020-05-20 16:33:46

接口列表

接口名称 接口说明
Add 增加图片
SearchImageByPic 使用图片进行搜索
SearchImageByName 指定名称,使用已入库的图片进行搜索
Delete 删除图片

准备工作

依赖安装

通过 NuGet程序包管理器来安装,在解决方案资源管理器面板中右击您的项目选择管理 NuGet程序包菜单,在打开的 NuGet管理面板中点击浏览选项卡输入:

  1. AlibabaCloud.SDK.ImageSearch 1.0.3

选择并点击安装即可。

代码示例

Add接口

代码示例
  1. using AlibabaCloud.Commons.Models;
  2. using AlibabaCloud.ImageSearch;
  3. using AlibabaCloud.ImageSearch.Models;
  4. using AlibabaCloud.TeaUtil.Models;
  5. using System;
  6. using System.IO;
  7. using Tea;
  8. namespace Test
  9. {
  10. class Add
  11. {
  12. static void Main(string[] args)
  13. {
  14. // Console.WriteLine("Hello World!");
  15. Config config = new Config();
  16. config.AccessKeyId = "XXXXXXXXXXX";
  17. config.AccessKeySecret = "XXXXXXXXXXXXXXXXXXXXXXXX";
  18. config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
  19. config.RegionId = "cn-shanghai";
  20. config.Type = "access_key";
  21. Client client = new Client(config);
  22. FileStream fs = File.OpenRead("D:/111.jpg");
  23. AddImageAdvanceRequest request = new AddImageAdvanceRequest();
  24. // 必填,图片名称,最多支持 512个字符。
  25. // 1. ProductId + PicName唯一确定一张图片。
  26. // 2. 如果多次添加图片具有相同的ProductId + PicName,以最后一次添加为准,前面添加的的图片将被覆盖。
  27. request.PicName = "xusong.jpg";
  28. // 必填,商品id,最多支持 512个字符。
  29. // 一个商品可有多张图片。
  30. request.ProductId = "1001";
  31. // 必填,图像搜索实例名称。
  32. request.InstanceName = "XXXXXXXXXXXXXXXXXXXXXXXXX";
  33. // 图片内容,最多支持 2MB大小图片以及5s的传输等待时间。当前仅支持jpg和png格式图片;
  34. // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于200,并且小于等于1024;
  35. // 对于布料搜索,图片长和宽的像素必须都大于等于448,并且小于等于1024;
  36. // 图像中不能带有旋转信息
  37. request.PicContentObject = fs;
  38. // 选填,整数类型属性,可用于查询时过滤,查询时会返回该字段。
  39. // 例如不同的站点的图片/不同用户的图片,可以设置不同的IntAttr,查询时通过过滤来达到隔离的目的
  40. request.IntAttr = 99;
  41. // 选填,字符串类型属性,最多支持 128个字符。可用于查询时过滤,查询时会返回该字段。
  42. request.StrAttr = "aliyun.com";
  43. // 选填,图片类目。
  44. // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
  45. // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
  46. request.CategoryId = 5;
  47. // 选填,是否需要进行主体识别,默认为true。
  48. // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
  49. // 2. 为false时,则不进行主体识别,以整张图进行搜索。
  50. // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
  51. request.Crop = true;
  52. // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。
  53. // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
  54. // 对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
  55. request.Region = "66,333,97,356";
  56. RuntimeOptions runtimeObject = new RuntimeOptions();
  57. try
  58. {
  59. AddImageResponse response = client.AddImageAdvance(request, runtimeObject);
  60. Console.WriteLine("RequestId:" + response.RequestId);
  61. Console.WriteLine("Message:" + response.Message);
  62. Console.WriteLine("Success:" + response.Success);
  63. Console.WriteLine("Code:" + response.Code);
  64. Console.WriteLine("PicInfo.CategoryId:" + response.PicInfo.CategoryId);
  65. Console.WriteLine("PicInfo.Region:" + response.PicInfo.Region);
  66. }
  67. catch (TeaUnretryableException e)
  68. {
  69. Console.WriteLine("InnerException结果:" + e.InnerException.Message);
  70. Console.WriteLine("Data结果:" + e.Data);
  71. Console.WriteLine("Message结果:" + e.Message);
  72. Console.WriteLine("打印String:" + e.ToString());
  73. }
  74. }
  75. }
  76. }
返回结果示例
  1. RequestId:247D5DAC-EBDD-49DC-973B-463B36C6BB41
  2. Message:success
  3. Success:True
  4. Code:0
  5. PicInfo.CategoryId:5
  6. PicInfo.Region:66,333,97,356

SearchImageByPic接口

代码示例
  1. using AlibabaCloud.ImageSearch;
  2. using AlibabaCloud.ImageSearch.Models;
  3. using AlibabaCloud.TeaUtil.Models;
  4. using System;
  5. using System.IO;
  6. using Tea;
  7. namespace Test
  8. {
  9. class SearchImageByPic
  10. {
  11. static void Main(string[] args)
  12. {
  13. Config config = new Config();
  14. config.AccessKeyId = "XXXXXXXX";
  15. config.AccessKeySecret = "XXXXXXXXXXXXX";
  16. config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
  17. config.RegionId = "cn-shanghai";
  18. config.Type = "access_key";
  19. Client client = new Client(config);
  20. FileStream fs = File.OpenRead("D:/123.jpg");
  21. SearchImageByPicAdvanceRequest request = new SearchImageByPicAdvanceRequest();
  22. // 选填,商品类目。
  23. // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
  24. // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
  25. request.CategoryId = 5;
  26. // 图片内容,最多支持 2MB大小图片以及5s的传输等待时间。当前仅支持jpg和png格式图片;
  27. // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于200,并且小于等于1024;
  28. // 对于布料搜索,图片长和宽的像素必须都大于等于448,并且小于等于1024;
  29. // 图像中不能带有旋转信息
  30. request.PicContentObject = fs;
  31. // 选填,是否需要进行主体识别,默认为true。
  32. // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
  33. // 2. 为false时,则不进行主体识别,以整张图进行搜索。
  34. // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
  35. request.Crop = true;
  36. // 选填,过滤条件
  37. // int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多个条件之支持AND和OR进行连接。
  38. // 示例:
  39. //1. 根据IntAttr过滤结果,int_attr>=100
  40. //2. 根据StrAttr过滤结果,str_attr!="value1"
  41. //3. 根据IntAttr和StrAttr联合过滤结果,int_attr=1000 AND str_attr="value1"
  42. request.Filter = "int_attr=99";
  43. // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。
  44. // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
  45. // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
  46. request.Region = "66,333,98,356";
  47. // 必填,图像搜索实例名称。
  48. request.InstanceName = "XXXXXX";
  49. RuntimeOptions runtimeObject = new RuntimeOptions();
  50. try
  51. {
  52. SearchImageByPicResponse response = client.SearchImageByPicAdvance(request, runtimeObject);
  53. String result = Newtonsoft.Json.JsonConvert.SerializeObject(response);
  54. Console.WriteLine("result:" + result);
  55. }
  56. catch (TeaUnretryableException e)
  57. {
  58. Console.WriteLine("InnerException结果:" + e.InnerException.Message);
  59. Console.WriteLine("Data结果:" + e.Data);
  60. Console.WriteLine("Message结果:" + e.Message);
  61. Console.WriteLine("打印String:" + e.ToString());
  62. }
  63. }
  64. }
  65. }
返回结果示例
  1. result:
  2. {
  3. "RequestId":"632814A0-F34D-46FB-882D-81D74E7C3290",
  4. "Success":true,
  5. "Code":0,
  6. "Msg":"success",
  7. "Auctions":[
  8. {
  9. "CategoryId":0,
  10. "ProductId":"test",
  11. "PicName":"test.jpg",
  12. "CustomContent":null,
  13. "SortExprValues":"7.33136443711219;0",
  14. "IntAttr":null,
  15. "StrAttr":null
  16. },
  17. {......}
  18. ],
  19. "Head":{
  20. "DocsReturn":4,
  21. "DocsFound":4,
  22. "SearchTime":155
  23. },
  24. "PicInfo":{
  25. "CategoryId":0,
  26. "Region":"202,596,155,637",
  27. "AllCategories":[{"Id":0,"Name":"Tops"},{.....}]
  28. }
  29. }

SearchImageByName接口

代码示例
  1. using AlibabaCloud.ImageSearch;
  2. using AlibabaCloud.ImageSearch.Models;
  3. using AlibabaCloud.TeaUtil.Models;
  4. using System;
  5. using System.IO;
  6. using Tea;
  7. namespace Test
  8. {
  9. class SearchImageByName
  10. {
  11. static void Main(string[] args)
  12. {
  13. Config config = new Config();
  14. config.AccessKeyId = "XXXXXXXX";
  15. config.AccessKeySecret = "XXXXXXXXXXX";
  16. config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
  17. config.RegionId = "cn-shanghai";
  18. config.Type = "access_key";
  19. Client client = new Client(config);
  20. SearchImageByNameRequest request = new SearchImageByNameRequest();
  21. // 选填,商品类目。
  22. // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
  23. // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
  24. request.CategoryId = 5;
  25. // 必填,图像搜索实例名称
  26. request.InstanceName = "XXXXXXXXXX";
  27. // 必填,图片名称,最多支持 512个字符。
  28. // 1. ProductId + PicName唯一确定一张图片
  29. request.PicName = "xusong.jpg";
  30. // 必填,商品id,最多支持 512个字符。
  31. // 一个商品可有多张图片。
  32. request.ProductId = "1001";
  33. RuntimeOptions runtimeObject = new RuntimeOptions();
  34. try
  35. {
  36. SearchImageByNameResponse response = client.SearchImageByName(request,runtimeObject);
  37. String result = Newtonsoft.Json.JsonConvert.SerializeObject(response);
  38. Console.WriteLine("result:" + result);
  39. }
  40. catch (TeaUnretryableException e)
  41. {
  42. Console.WriteLine("InnerException结果:" + e.InnerException.Message);
  43. Console.WriteLine("Data结果:" + e.Data);
  44. Console.WriteLine("Message结果:" + e.Message);
  45. Console.WriteLine("打印String:" + e.ToString());
  46. }
  47. }
  48. }
  49. }
返回结果示例
  1. result:
  2. {
  3. "RequestId":"5B16E5CD-FE8A-4A4E-A90B-02A5C9F8BD81",
  4. "Success":true,
  5. "Code":0,
  6. "Msg":"success",
  7. "Auctions":[
  8. {
  9. "CategoryId":0,
  10. "ProductId":"test",
  11. "PicName":"test.jpg",
  12. "CustomContent":null,
  13. "SortExprValues":"7.33136443711219;0",
  14. "IntAttr":null,
  15. "StrAttr":null
  16. },
  17. {....}
  18. ],
  19. "Head":{
  20. "DocsReturn":4,
  21. "DocsFound":4,
  22. "SearchTime":50
  23. },
  24. "PicInfo":{
  25. "CategoryId":0,
  26. "Region":null,
  27. "AllCategories":[
  28. {"Id":0,"Name":"Tops"},
  29. {...}
  30. ]
  31. }
  32. }

Delete接口

代码示例
  1. using AlibabaCloud.ImageSearch;
  2. using AlibabaCloud.ImageSearch.Models;
  3. using AlibabaCloud.TeaUtil.Models;
  4. using System;
  5. using System.IO;
  6. using Tea;
  7. namespace Test
  8. {
  9. class Delete
  10. {
  11. static void Main(string[] args)
  12. {
  13. Config config = new Config();
  14. config.AccessKeyId = "XXXXXXXXX";
  15. config.AccessKeySecret = "XXXXXXXXX";
  16. config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
  17. config.RegionId = "cn-shanghai";
  18. config.Type = "access_key";
  19. Client client = new Client(config);
  20. DeleteImageRequest request = new DeleteImageRequest();
  21. // 必填,图像搜索实例名称。
  22. request.InstanceName = "XXXXXXXXXXX";
  23. // 必填,图片名称,最多支持 512个字符。
  24. // 1. ProductId + PicName唯一确定一张图片。
  25. request.PicName = "xusong.jpg";
  26. // 选填,图片名称。若不指定本参数,则删除ProductId下所有图片;若指定本参数,则删除ProductId+PicName指定的图片。
  27. request.ProductId = "1001";
  28. RuntimeOptions runtimeObject = new RuntimeOptions();
  29. try
  30. {
  31. DeleteImageResponse response = client.DeleteImage(request,runtimeObject);
  32. Console.WriteLine("RequestId:" + response.RequestId);
  33. Console.WriteLine("Message:" + response.Message);
  34. Console.WriteLine("Code:" + response.Code);
  35. }
  36. catch (TeaUnretryableException e)
  37. {
  38. Console.WriteLine("InnerException结果:" + e.InnerException.Message);
  39. Console.WriteLine("Data结果:" + e.Data);
  40. Console.WriteLine("Message结果:" + e.Message);
  41. Console.WriteLine("打印String:" + e.ToString());
  42. }
  43. }
  44. }
  45. }
返回结果示例
  1. RequestId:D9BDEAE0-674C-4126-9D76-A79F0BE9E881
  2. Message:success
  3. Code:0