예제 #1
0
        /// <summary>
        /// 图片内容检测服务(Image Moderation, IM)能自动扫描图片,识别涉黄、涉恐、涉政、涉毒等有害内容,同时支持用户配置图片黑名单,打击自定义的违规图片。
        ///
        /// <div class="rno-api-explorer" style="margin-bottom:20px">
        ///     <div class="rno-api-explorer-inner">
        ///         <div class="rno-api-explorer-hd">
        ///             <div class="rno-api-explorer-title">
        ///                 关于版本迭代的描述
        ///             </div>
        ///         </div>
        ///         <div class="rno-api-explorer-body">
        ///             <div class="rno-api-explorer-cont">
        ///                 <p>当前页面版本为图片内容安全2020版本,2020.11.3日前接入的图片内容安全接口为2019版本,在此时间前接入的用户可直接访问以下链接进行维护操作:<a href="https://cloud.tencent.com/document/product/1125/38206" target="_blank">图片内容安全-2019版本</a></p>
        ///                 <p>2020版本相对2019版本进行了升级,支持更灵活的多场景业务策略配置以及更丰富的识别回调信息,满足不同业务的审核需求,建议按照2020版本接入指引进行接口升级;同时,2019版本也会持续维护直至用户不再使用为止。</p>
        ///             </div>
        ///         </div>
        ///     </div>
        /// </div>
        /// </summary>
        /// <param name="req"><see cref="ImageModerationRequest"/></param>
        /// <returns><see cref="ImageModerationResponse"/></returns>
        public ImageModerationResponse ImageModerationSync(ImageModerationRequest req)
        {
            JsonResponseModel <ImageModerationResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "ImageModeration");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <ImageModerationResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
예제 #2
0
        public static ImageModerationResponse ImageModeration(byte[] bytes)
        {
            var cred = new Credential
            {
                SecretId  = API_KEY,
                SecretKey = SECRET_KEY
            };

            var clientProfile = new ClientProfile();
            var httpProfile   = new HttpProfile();

            httpProfile.Endpoint      = "tiia.tencentcloudapi.com";
            clientProfile.HttpProfile = httpProfile;

            var client = new TiiaClient(cred, Region_Id, clientProfile);
            var req    = new ImageModerationRequest();

            req.Scenes      = new[] { "P**N", "TERRORISM", "POLITICS", "TEXT" };
            req.ImageBase64 = Convert.ToBase64String(bytes);

            var resp = client.ImageModeration(req).ConfigureAwait(false).GetAwaiter().GetResult();

            return(resp);
        }
예제 #3
0
        /// <summary>
        ///     注意使用时,要缩小图片的尺寸
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static DetectionResult Detection(byte[] bytes)
        {
            try
            {
                var cred = new Credential
                {
                    SecretId  = API_KEY,
                    SecretKey = SECRET_KEY
                };

                var clientProfile = new ClientProfile();
                var httpProfile   = new HttpProfile();
                httpProfile.Endpoint      = "tiia.tencentcloudapi.com";
                clientProfile.HttpProfile = httpProfile;

                var client = new TiiaClient(cred, Region_Id, clientProfile);
                var req    = new ImageModerationRequest();
                req.Scenes      = new[] { "P**N" };
                req.ImageBase64 = Convert.ToBase64String(bytes);

                var resp = client.ImageModeration(req).ConfigureAwait(false).GetAwaiter().GetResult();

                var ret = new DetectionResult {
                    Platform = "腾讯"
                };

                switch (resp.PornResult.Type.ToLower())
                {
                case "normal":
                    ret.Result = DetectionResultType.Normal;
                    break;

                case "p**n":
                    ret.Result = DetectionResultType.P**n;
                    break;

                case "hot":
                    ret.Result = DetectionResultType.Sexy;
                    break;

                case "breast":
                case "ass":
                case "bareBody":
                case "unrealHotPeople":
                    ret.Result = resp.PornResult.Suggestion == "PASS"
                            ? DetectionResultType.Sexy
                            : DetectionResultType.P**n;
                    break;

                default:
                    ret.Result = DetectionResultType.Unknow;
                    break;
                }

                ret.Items.Add(new DetectionResultItem
                {
                    Suggestion = resp.PornResult.Confidence ?? 0, TypeName = resp.PornResult.Type
                });
                ret.SourceResult = JsonConvert.SerializeObject(resp, Formatting.Indented);
                return(ret);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(new DetectionResult {
                    Error = ex.Message, Platform = "腾讯"
                });
            }
        }