@SuppressLint("CheckResult")
public void downloadPicture(Context context) {
Observable.create(new ObservableOnSubscribe<Boolean>() {
@Override
public void subscribe(@NotNull ObservableEmitter<Boolean> observableEmitter) throws Exception {
//第一步:POST访问https://image.baidu.com/aigc/generate
//参数:query=水杯图片 querycate=8 width=512 height=512 modelParameter[quality]=0 modelParameter[id]=0
//响应:{
// "status": 0,
// "taskid": 826337523,
// "descList": [
// "空中",
// "完成度高"
// ],
// "timestamp": "1732779222",
// "token": "53574d46d5823407695ca4e43153521c",
// "taskStrategyData": {}
//}
//第二步:GET请求:https://image.baidu.com/aigc/query?taskid=2325094922&token=d6568f2e44757840a4f43b7c1e4a2d5d×tamp=1732778425
//需要一直请求,直到isGenerate=true 简单处理可以延迟请求
//响应:{
// "isGenerate": true,
// "progress": 100,
// "algoprocess": 0,
// "picArr": [
// {
// "src": "http://gips2.baidu.com/it/u=742902223,4245250481\u0026fm=3042\u0026app=3042\u0026f=JPEG?w=512\u0026h=512",
// "wmkSrc": "http://gips2.baidu.com/it/u=742902223,4245250481\u0026fm=3042\u0026app=3042\u0026f=JPEG\u0026wm=1,huayi,0,0,13,9\u0026wmo=0,0\u0026w=512\u0026h=512",
// "width": 512,
// "height": 512,
// "tag": "水杯图片",
// "quality": "0"
// },
// {
// "src": "http://gips0.baidu.com/it/u=1852877578,4013248267\u0026fm=3042\u0026app=3042\u0026f=JPEG?w=512\u0026h=512",
// "wmkSrc": "http://gips0.baidu.com/it/u=1852877578,4013248267\u0026fm=3042\u0026app=3042\u0026f=JPEG\u0026wm=1,huayi,0,0,13,9\u0026wmo=0,0\u0026w=512\u0026h=512",
// "width": 512,
// "height": 512,
// "tag": "水杯图片",
// "quality": "0"
// },
// {
// "src": "http://gips0.baidu.com/it/u=1921500114,589065410\u0026fm=3042\u0026app=3042\u0026f=JPEG?w=512\u0026h=512",
// "wmkSrc": "http://gips0.baidu.com/it/u=1921500114,589065410\u0026fm=3042\u0026app=3042\u0026f=JPEG\u0026wm=1,huayi,0,0,13,9\u0026wmo=0,0\u0026w=512\u0026h=512",
// "width": 512,
// "height": 512,
// "tag": "水杯图片",
// "quality": "0"
// },
// {
// "src": "http://gips3.baidu.com/it/u=3917000728,106920042\u0026fm=3042\u0026app=3042\u0026f=JPEG?w=512\u0026h=512",
// "wmkSrc": "http://gips3.baidu.com/it/u=3917000728,106920042\u0026fm=3042\u0026app=3042\u0026f=JPEG\u0026wm=1,huayi,0,0,13,9\u0026wmo=0,0\u0026w=512\u0026h=512",
// "width": 512,
// "height": 512,
// "tag": "水杯图片",
// "quality": "0"
// }
// ]
//}
OkHttpClient client = new OkHttpClient();
List<CategoryVo> categoryVos = com.cmct.module_tunnel.utils.Util.getAllCategoryVo();
for (CategoryVo vo : categoryVos) {
for (CategoryVo categoryVo : vo.getChildList()) {
MultipartBody body = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("query", categoryVo.getName())//创作关键字
.addFormDataPart("querycate", "8")
.addFormDataPart("width", "512")
.addFormDataPart("height", "512")
.build();
Request request = new Request.Builder()
.url("https://image.baidu.com/aigc/generate")
.post(body)
.build();
Response response = client.newCall(request).execute();
String result = response.body().string();
JSONObject jsonObject = new JSONObject(result);
int status = jsonObject.getInt("status");
if (status != 0) {
continue;
}
long taskid = jsonObject.getLong("taskid");
String timestamp = jsonObject.getString("timestamp");
String token = jsonObject.getString("token");
Thread.sleep(5000);//上面调用接口以后,创作需要时间,这里等待5秒省去轮询逻辑
String url = "https://image.baidu.com/aigc/query?taskid=" + taskid + "&token=" + token + "×tamp=" + timestamp;
// 构建一个Request对象
Request request2 = new Request.Builder()
.url(url)
.build();
Response response2 = client.newCall(request2).execute();
String result2 = response2.body().string();
JSONObject jsonObject2 = new JSONObject(result2);
JSONArray jsonArray = jsonObject2.getJSONArray("picArr");
JSONObject jsonObject3 = jsonArray.getJSONObject(0);//返回多张,这里只取第一张,根据业务需求改变
String src = jsonObject3.getString("src");
String sourcePath = FilePath.getSDCardPath() + "/source";
File file = Glide.with(context).asFile().load(src).submit().get();
FileUtils.copyFile(file, new File(sourcePath + "/" + "ic_" + PinYinUtil.getPinYin(categoryVo.getName()) + ".jpeg"));
}
}
observableEmitter.onNext(true);
observableEmitter.onComplete();
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
}
});
}
百度图片AI创作批量生成图片并下载
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 1.template 利用el-table创建一个表格,其中表格的第三列为二维码组件qrcode-vue 基本效果...
- 前提: 安装谷歌浏览器,迅雷下载 1.进入百度图片搜索 https://image.baidu.com/[http...