
# 媒资图像标签示例
本章节对媒资图像标签AK/SK方式使用SDK进行示例说明。
- 媒资图像标签示例代码只需将AK/SK信息替换为实际AK/SK，代码中可以使用ImageMediaTaggingReq中的Url或Image方法配置图像信息（image和url参数二选一），示例中以url为例，配置完成后运行即可。
- endpoint是华为云各服务应用区域和各服务的终端节点，详情请查看[地区和终端节点](https://developer.huaweicloud.com/endpoint?Image) 。
1. 媒资图像标签调用示例代码如下：
   ```
   #include <cstdlib>
   #include <iostream>
   #include <string>
   #include <memory>
   #include <huaweicloud/core/exception/Exceptions.h>
   #include <huaweicloud/core/Client.h>
   #include <huaweicloud/image/v2/ImageClient.h>
   using namespace HuaweiCloud::Sdk::Image::V2;
   using namespace HuaweiCloud::Sdk::Image::V2::Model;
   using namespace HuaweiCloud::Sdk::Core;
   using namespace HuaweiCloud::Sdk::Core::Exception;
   using namespace std;
   int main(void)
   {
      // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全；
      // 本示例以ak和sk保存在环境变量中来实现身份验证为例，运行本示例前请先在本地环境中设置环境变量CLOUD_SDK_AK和CLOUD_SDK_SK。
       string ak = getenv("CLOUD_SDK_AK");
       string sk = getenv("CLOUD_SDK_SK");
       string projectId = "";
    //image.cn-north-4.myhuaweicloud.com替换为您开通服务区域的终端节点
       string endpoint = "https://image.cn-north-4.myhuaweicloud.com";
       auto auth = std::make_unique<BasicCredentials>();
       auth->withAk(ak)
           .withSk(sk)
           .withProjectId(projectId);
       HttpConfig httpConfig = HttpConfig();
       auto client = ImageClient::newBuilder()
               .withCredentials(std::unique_ptr<Credentials>(auth.release()))
               .withHttpConfig(httpConfig)
               .withEndPoint(endpoint)
               .build();
       RunImageMediaTaggingRequest request;
       ImageMediaTaggingReq body;
       body.setLimit(10);
       body.setThreshold(60);
       body.setLanguage("zh");
       body.setImage("输入图片,使用base64编码");
       request.setBody(body);
       std::cout << "-----begin execute request-------" << std::endl;
       try {
           auto reponse = client->runImageMediaTagging(request);
           std::cout << reponse->getHttpBody() << std::endl;
       } catch (HostUnreachableException& e) {
           std::cout << "host unreachable:" << e.what() << std::endl;
       } catch (SslHandShakeException& e) {
           std::cout << "ssl handshake error:" << e.what() << std::endl;
       } catch (RetryOutageException& e) {
           std::cout << "retryoutage error:" << e.what() << std::endl;
       } catch (CallTimeoutException& e) {
           std::cout << "call timeout:" <<  e.what() << std::endl;
       } catch (ServiceResponseException& e) {
           std::cout << "http status code:" << e.getStatusCode() << std::endl;
           std::cout << "error code:" << e.getErrorCode() << std::endl;
           std::cout << "error msg:" << e.getErrorMsg() << std::endl;
           std::cout << "RequestId:" << e.getRequestId() << std::endl;
       } catch (exception& e) {
           std:cout << "unknown exception:" << e.what() << std::endl;
       }
       std::cout << "------request finished--------" << std::endl;
       return 0;
   }
   ```
   
2. 执行示例代码文件，控制台输出媒资图像标签结果即表示程序执行成功。相关参数说明请参考[媒资图像标签API](https://support.huaweicloud.com/api-image/image_03_0048.html#section5)。
   ```
   RunImageMediaTaggingResponse {"result": {"tags": [{"confidence": "83.15", "type": "社会", "tag": "火灾", "i18n_tag": {"zh": "火灾", "en": "Fire"}, "i18n_type": {"zh": "社会", "en": "Society"}, "instances": []}, {"confidence": "70.21", "type": "其他", "tag": "火", "i18n_tag": {"zh": "火", "en": "Fire"}, "i18n_type": {"zh": "其他", "en": "Other"}, "instances": []}, {"confidence": "53.63", "type": "学科科学", "tag": "火球", "i18n_tag": {"zh": "火球", "en": "Fireball"}, "i18n_type": {"zh": "学科科学", "en": "Subject science"}, "instances": []}, {"confidence": "53.45", "type": "其他", "tag": "营火", "i18n_tag": {"zh": "营火", "en": "Campfire"}, "i18n_type": {"zh": "其他", "en": "Other"}, "instances": []}, {"confidence": "50.73", "type": "人工场景", "tag": "林业局", "i18n_tag": {"zh": "林业局", "en": "Forestry bureau"}, "i18n_type": {"zh": "人工场景", "en": "Manual scenario"}, "instances": []}, {"confidence": "50.34", "type": "其他", "tag": "烧毁的", "i18n_tag": {"zh": "烧毁的", "en": "Burned"}, "i18n_type": {"zh": "其他", "en": "Other"}, "instances": []}, {"confidence": "46.63", "type": "场景", "tag": "火焰", "i18n_tag": {"zh": "火焰", "en": "Flame"}, "i18n_type": {"zh": "场景", "en": "Scene"}, "instances": []}, {"confidence": "45.27", "type": "其他", "tag": "燃烧", "i18n_tag": {"zh": "燃烧", "en": "Burning"}, "i18n_type": {"zh": "其他", "en": "Other"}, "instances": []}, {"confidence": "41.32", "type": "职业/角色", "tag": "消防员", "i18n_tag": {"zh": "消防员", "en": "Fireman"}, "i18n_type": {"zh": "职业/角色", "en": "Career/Role"}, "instances": []}, {"confidence": "39.97", "type": "动作", "tag": "烧香", "i18n_tag": {"zh": "烧香", "en": "Incense burning"}, "i18n_type": {"zh": "动作", "en": "Action"}, "instances": []}]}}
   ```
   
 
