Commit 8d724f10 by xushaohua

feat:部署

parent 4adf1a63
......@@ -19,10 +19,7 @@ import com.github.novicezk.midjourney.service.TaskStoreService;
import com.github.novicezk.midjourney.service.TranslateService;
import com.github.novicezk.midjourney.support.Task;
import com.github.novicezk.midjourney.support.TaskCondition;
import com.github.novicezk.midjourney.util.BannedPromptUtils;
import com.github.novicezk.midjourney.util.ConvertUtils;
import com.github.novicezk.midjourney.util.MimeTypeUtils;
import com.github.novicezk.midjourney.util.TaskChangeParams;
import com.github.novicezk.midjourney.util.*;
import eu.maxschuster.dataurl.DataUrl;
import eu.maxschuster.dataurl.DataUrlSerializer;
import eu.maxschuster.dataurl.IDataUrlSerializer;
......@@ -37,8 +34,12 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.Set;
......@@ -78,10 +79,12 @@ public class SubmitController {
return SubmitResultVO.fail(ReturnCode.BANNED_PROMPT, "可能包含敏感词");
}
DataUrl dataUrl = null;
if (CharSequenceUtil.isNotBlank(imagineDTO.getBase64())) {
IDataUrlSerializer serializer = new DataUrlSerializer();
String imageUrl = imagineDTO.getImageUrl();
if (CharSequenceUtil.isNotBlank(imageUrl)) {
String base64FromImageUrl = DataURIUtil.getBase64FromImageUrl(imageUrl);
IDataUrlSerializer serializer = new DataUrlSerializer();
try {
dataUrl = serializer.unserialize(imagineDTO.getBase64());
dataUrl = serializer.unserialize(base64FromImageUrl);
} catch (MalformedURLException e) {
return SubmitResultVO.fail(ReturnCode.VALIDATION_ERROR, "basisImageBase64格式错误");
}
......
......@@ -17,4 +17,7 @@ public class SubmitImagineDTO extends BaseSubmitDTO {
@ApiModelProperty(value = "垫图base64")
private String base64;
@ApiModelProperty(value = "垫图url")
private String imageUrl;
}
package com.github.novicezk.midjourney.util;
import lombok.extern.slf4j.Slf4j;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.util.Base64;
@Slf4j
public class DataURIUtil {
/**
* 将在线图片地址转换成BASE64编码的 DataURI 形式
* @param imageUrl
* @return
*/
public static String getBase64FromImageUrl(String imageUrl) {
try {
URL url = new URL(imageUrl);
InputStream inputStream = url.openStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// 将图片数据读取到字节数组输出流
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
// 将字节数组输出流中的图片数据进行 Base64 编码
byte[] imageBytes = outputStream.toByteArray();
String base64Data = Base64.getEncoder().encodeToString(imageBytes);
// 构建 Data URI
String last = imageUrl.substring(imageUrl.lastIndexOf(".") + 1);
String mimeType = "image/" + last; // 替换为对应的 MIME 类型,根据图片类型可能是 "image/jpeg" 或 "image/gif" 等
String dataURI = "data:" + mimeType + ";base64," + base64Data;
return dataURI;
} catch (Exception e) {
log.error("将在线图片url转换成base64异常:{}", e);
}
return "";
}
}
......@@ -42,4 +42,8 @@ public class MimeTypeUtils {
return suffixList.iterator().next();
}
public static void main(String[] args) {
guessFileSuffix("image/jpg");
}
}
......@@ -18,6 +18,7 @@ image/x-jng:jng
image/x-ms-bmp:bmp
image/svg+xml:svg svgz
image/webp:webp
image/jpg:jpg
application/javascript:js
application/x-javascript:js
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment