All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.qingxun.javasdkapi.examples.ImageTransOpenApiClientDemo Maven / Gradle / Ivy

package com.qingxun.javasdkapi.examples;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.qingxun.javasdkapi.clients.ImageTransOpenApiClient;
import com.qingxun.javasdkapi.request.DownloadImageRequest;
import com.qingxun.javasdkapi.request.QueryTransImageProgressRequest;
import com.qingxun.javasdkapi.request.UploadTransImageRequest;
import com.qingxun.javasdkapi.response.DownloadImageResponse;
import com.qingxun.javasdkapi.response.QueryTransImageProgressResponse;
import com.qingxun.javasdkapi.response.UploadTransImageResponse;
import com.qingxun.javasdkapi.utils.HttpClientUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.FileNotFoundException;

import static com.qingxun.javasdkapi.common.JsonUtil.objectMapper;

/**
 * 图片翻译
 */
public class ImageTransOpenApiClientDemo extends CommonDemo {

    private final static String uploadFilePath = "需要翻译的图片路径";
    private final static String appId = "您的appId";
    private final static String privateKey = "您的privateKey";
    private final static String fromLan = "图片的原语言";
    private final static String toLan = "图片的目标语言";
    private final static String saveTransDirPath = "保存翻译后的文件目录名称";
    private final static String saveTransFileName = "保存翻译后的文件名称";
    // 文件名称,传入文件流的时候必须传
    private final static String docName = "你的文件全名名称";
    /**
     * 下载的文件类型(new):
     * 2:翻译后的pdf文件,支持格式:word、pdf、img。
     * 3:翻译后的word文件(支持格式:word、pdf);ppt文件(支持格式:img、ppt);excel文件(支持格式:excel)
     * 6:转换完成文档
     */
    private final static Integer dType = 3;
    //private final static String saveTransFileName = "保存翻译后的文件名称";


    private final static Logger log = LoggerFactory.getLogger(ImageTransOpenApiClientDemo.class);

    private static ImageTransOpenApiClient imageTransOpenApiClient = new ImageTransOpenApiClient(appId,privateKey);
    //也可以自定义请求接口的工具类使用更符合自己生产环境或者更高效的工具类,目前只支持传入文件流(FileStream)的方式而不是传入文件(file)的方式
    //private static ImageTransOpenApiClient imageTransOpenApiClient = new ImageTransOpenApiClient(appId,privateKey,new HttpClientUtil());

    public static DownloadImageResponse downloadFile(Integer tid) {
        DownloadImageRequest downloadFileRequest = new DownloadImageRequest.Builder()
                .setTid(tid).builder();

     return imageTransOpenApiClient.excute(downloadFileRequest);
    }

    public static  UploadTransImageResponse uploadImage(String filePath) throws FileNotFoundException {
        UploadTransImageRequest uploadTransImageRequest = new UploadTransImageRequest.Builder()
                //md5参数会自动计算
                //传入文件或者文件流都可
                //.setFileStream(new FileInputStream(filePath)).setFileName(docName)
                .setFile(new File(filePath))
                .setFrom(fromLan).setTo(toLan).builder();

        return imageTransOpenApiClient.excute(uploadTransImageRequest);
    }


    public static QueryTransImageProgressResponse queryTransImageProgress(Integer tid){
        QueryTransImageProgressRequest queryTransImageProgressRequest = new QueryTransImageProgressRequest.Builder().setTid(tid).builder();
        return imageTransOpenApiClient.excute(queryTransImageProgressRequest);
    }


    public static void main(String[] args) throws JsonProcessingException, FileNotFoundException {

        QueryTransImageProgressResponse queryTransProgressResponse;
        UploadTransImageResponse uploadTransResponse = uploadImage(uploadFilePath);
        log.info("图片翻译上传结果: {}",objectMapper.writeValueAsString(uploadTransResponse));
        if (uploadTransResponse != null && uploadTransResponse.getTid() > 0) {
            boolean flag = true;
            while (flag) {
                queryTransProgressResponse = queryTransImageProgress(uploadTransResponse.getTid());
                log.info("图片翻译查询进度: {}",objectMapper.writeValueAsString(queryTransProgressResponse));
                if (queryTransProgressResponse.getStatus().equals(0)) {
                    //下载图片翻译后的文件
                    DownloadImageResponse response = downloadFile(uploadTransResponse.getTid());
                    //保存图片翻译后得到的文件
                    bytesToFile(response.getBytes(), saveTransDirPath, saveTransFileName);
                    return;
                }
                if (queryTransProgressResponse.getStatus().equals(1)) {
                    flag = true;
                }
                if(queryTransProgressResponse.getStatus().equals(-1)) {
                    flag = false;
                }
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        }

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy