Updated on 2025-07-02 GMT+08:00

Image Moderation (V3)

  1. This section describes how to use the Image Moderation SDK by AK/SK authentication.

    In the sample code, you can use the withUrl or withImage method of the ImageDetectionReq class to set image information (either the image or url parameter). The following uses url as an example. After the configuration is complete, run the code.

    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.moderation.v3.region.ModerationRegion;
    import com.huaweicloud.sdk.moderation.v3.*;
    import com.huaweicloud.sdk.moderation.v3.model.*;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class CheckImageModerationSolution {
    
        public static void main(String[] args) {
           // Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK and store them in the configuration file or environment variables.
           // In this example, the AK and SK are stored in environment variables for identity authentication. Before running this example, configure environment variables HUAWEICLOUD_SDK_AK and HUAWEICLOUD_SDK_SK.
            String ak = System.getenv("HUAWEICLOUD_SDK_AK");
            String sk = System.getenv("HUAWEICLOUD_SDK_SK");
            String projectId = "project_id";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            ModerationClient client = ModerationClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(ModerationRegion.valueOf("xxx"))  //Replace xxx with the service region, for example, ap-southeast-3.
                    .build();
            CheckImageModerationRequest request = new CheckImageModerationRequest();
            ImageDetectionReq body = new ImageDetectionReq();
            List<String> listbodyCategories = new ArrayList<>();
            listbodyCategories.add("porn");
            body.withUrl("http://www.xxxx.xxxx");
            body.withCategories(listbodyCategories);
            body.withEventType("head_image");
            request.withBody(body);
            try {
                CheckImageModerationResponse response = client.checkImageModeration(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
  2. If 200 is displayed on the console, the code is successfully executed. The image moderation result is displayed on the console.
    class CheckImageModerationResponse {
        requestId: 63b6b19eb9fa1db05d2f87f970472995
        result: class ImageDetectionResult {
            suggestion: block
            category: image_text
            details: [class ImageDetectionResultDetail {
                suggestion: block
                category: image_text
                confidence: 1.0
                faceLocation: null
                qrLocation: class QRLocationDetail {
                    topLeftX: 74
                    topLeftY: 66
                    bottomRightX: 151
                    bottomRightY: 142
                }
                qrContent: http://xxxxxxxxxx
                segments: null
                label: qr_code
            }, class ImageDetectionResultDetail {
                suggestion: block
                category: image_text
                confidence: 0.98779297
                faceLocation: null
                qrLocation: null
                qrContent: null
                segments: null
                label: ad
            }, class ImageDetectionResultDetail {
                suggestion: block
                category: image_text
                confidence: 1.0
                faceLocation: null
                qrLocation: null
                qrContent: null
                segments: null
                label: qr_code
            }]
            ocrText: xxxxxxxxx
        }
    }