【sdk】- 对接阿里云抠图

文档地址:https://help.aliyun.com/zh/viapi/use-cases/general-image-segmentation?spm=a2c4g.11186623.0.0.3814173cenldIs

java对接阿里云的通用分割,将代码原封不动复制进来,执行结果失败,咨询阿里云的人员之后,由于jar包冲突导致,需要引入一些特定的包版本来实现

pom引用

xml 复制代码
  <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>imageseg20191230</artifactId>
            <version>2.0.2</version>
            <exclusions>
                <exclusion>
                    <groupId>com.squareup.okhttp3</groupId>
                    <artifactId>okhttp</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>tea-openapi</artifactId>
            <version>0.3.4</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>tea-console</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>tea-util</artifactId>
            <version>0.2.22</version>
        </dependency>
      <!--在我的服务中必须手动再次引人,不然报错-->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
        </dependency>

代码

只需要改pom,对于获取环境变量中的ak信息,完全没必要。

java 复制代码
public class AliyunApiService {
    public static com.aliyun.imageseg20191230.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        /*
          初始化配置对象com.aliyun.teaopenapi.models.Config
          Config对象存放 AccessKeyId、AccessKeySecret、endpoint等配置
         */
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                .setAccessKeyId(accessKeyId)
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名
        config.endpoint = "imageseg.cn-shanghai.aliyuncs.com";
        return new com.aliyun.imageseg20191230.Client(config);
    }

    public static void main(String[] args_) throws Exception {


        // 创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html
        // 如果您使用的是RAM用户的AccessKey,还需要为子账号授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html
        // 从环境变量读取配置的AccessKey ID和AccessKey Secret。运行代码示例前必须先配置环境变量。
        String accessKeyId = "";
        String accessKeySecret = "";
        com.aliyun.imageseg20191230.Client client = AliyunApiService.createClient(accessKeyId, accessKeySecret);
        // 场景一,使用本地文件
//         InputStream inputStream = new FileInputStream(new File("/Users/qweasdzxc/Downloads/WechatIMG201.jpeg"));
        // 场景二,使用任意可访问的url
        URL url = new URL("https://viapi-test-bj.oss-cn-beijing.aliyuncs.com/viapi-3.0domepic/imageseg/SegmentCommonImage/SegmentCommonImage1.jpg");
        InputStream inputStream = url.openConnection().getInputStream();
        com.aliyun.imageseg20191230.models.SegmentCommonImageAdvanceRequest segmentCommonImageAdvanceRequest = new com.aliyun.imageseg20191230.models.SegmentCommonImageAdvanceRequest()
                .setImageURLObject(inputStream);
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            SegmentCommonImageResponse segmentCommonImageResponse = client.segmentCommonImageAdvance(segmentCommonImageAdvanceRequest, runtime);
            // 获取整体结果
            System.out.println(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(segmentCommonImageResponse)));
            // 获取单个字段
            System.out.println(segmentCommonImageResponse.getBody().data.imageURL);
        } catch (TeaException teaException) {
            // 获取整体报错信息
            System.out.println(com.aliyun.teautil.Common.toJSONString(teaException));
            // 获取单个字段
            System.out.println(teaException.getCode());
        }
    }
}
相关推荐
范什么特西2 分钟前
web练习
java·前端·javascript
阿捞210 分钟前
JVM排查工具单
java·jvm·python
mfxcyh19 分钟前
基于xml、注解、JavaConfig实现spring的ioc
xml·java·spring
Flittly20 分钟前
【SpringAIAlibaba新手村系列】(13)Tool Calling 函数工具调用技术
java·spring boot·spring·ai
xdscode28 分钟前
Spring 依赖注入方式全景解析
java·后端·spring
爱吃烤鸡翅的酸菜鱼38 分钟前
Java 事件发布-订阅机制全解析:从原生实现到主流中间件
java·中间件·wpf·事件·发布订阅
无限码力1 小时前
华为OD技术面真题 - JAVA开发- spring框架 - 7
java·开发语言·华为od·华为od面试真题·华为odjava八股文·华为odjava开发题目·华为odjava开发高频题目
Lyyaoo.1 小时前
【JAVA基础面经】JAVA中的异常
java·开发语言
一定要AK1 小时前
JVM 全体系深度解析笔记
java·jvm·笔记
coder阿龙1 小时前
基于SpringAI+Qdrant+Ollama本地模型和向量数据库开发问答和RAG检索
java·数据库·spring boot·ai·数据库开发