Commit 5446b449 by 王祖波

合成图片并生成mediaId

parent 53082c5f
package com.gic.haoban.manage.service.context.draw;
package com.gic.haoban.manage.service.context.combined;
import com.gic.haoban.manage.api.qdto.combined.CombinedQDTO;
import com.gic.haoban.manage.service.context.chat.BusinessManager;
......@@ -19,9 +19,9 @@ import java.util.concurrent.TimeUnit;
/**
* Created by wangzubo on 2024/10/27.
*/
public class ImageDraw {
public class ImageCombined {
private static final Logger logger = LoggerFactory.getLogger(BusinessManager.class);
private static final Logger logger = LoggerFactory.getLogger(ImageCombined.class);
private static final Cache<String, BufferedImage> imageCache = Caffeine.newBuilder()
.maximumWeight(100 * 1024 * 1024) // 100MB
......@@ -43,20 +43,14 @@ public class ImageDraw {
private static final String STORE_NAME = "门店CCA";
private static final String GUIDE_NAME = "宇智222为您推荐";
private static final String OUTPUT_PATH = "/Users/wang/Downloads/output_image3.jpg";
public static void main(String[] args) {
try {
BufferedImage largeImage = loadImageWithCache(LARGE_IMAGE_URL);
BufferedImage qrCodeImage = ImageIO.read(new URL(QR_CODE_URL));
public static void main(String[] args) throws Exception{
BufferedImage largeImage = loadImageWithCache(LARGE_IMAGE_URL);
BufferedImage qrCodeImage = ImageIO.read(new URL(QR_CODE_URL));
int showStyle = 0;
int showStyle = 0;
BufferedImage combinedImage = generateImage(largeImage, qrCodeImage, showStyle,STORE_NAME, GUIDE_NAME);
ImageIO.write(combinedImage, "jpg", new File(OUTPUT_PATH));
System.out.println("图像生成成功!");
} catch (Exception e) {
e.printStackTrace();
}
BufferedImage combinedImage = generateImage(largeImage, qrCodeImage, showStyle,STORE_NAME, GUIDE_NAME);
ImageIO.write(combinedImage, "jpg", new File(OUTPUT_PATH));
}
public static byte[] getCombinedImage(CombinedQDTO combinedQDTO) throws Exception{
......
......@@ -6,11 +6,10 @@ import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.HttpClient;
import com.gic.haoban.manage.api.qdto.combined.CombinedQDTO;
import com.gic.haoban.manage.service.context.draw.ImageDraw;
import com.gic.haoban.manage.service.context.combined.ImageCombined;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
......@@ -358,7 +357,7 @@ public class MaterialServiceImpl implements MaterialService {
String[] arr = null ;
String imageUrl = combinedQDTO.getImageUrl();
//合成图片
byte[] combinedImageData = ImageDraw.getCombinedImage(combinedQDTO);
byte[] combinedImageData = ImageCombined.getCombinedImage(combinedQDTO);
if (combinedImageData == null) {
return jsonResponse;
}
......
......@@ -10,9 +10,8 @@ import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
import cn.hutool.core.collection.ListUtil;
import com.gic.haoban.manage.api.qdto.combined.CombinedQDTO;
import com.gic.haoban.manage.service.context.draw.ImageDraw;
import com.gic.haoban.manage.service.context.combined.ImageCombined;
import com.gic.redis.data.util.RedisUtil;
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
......@@ -45,7 +44,6 @@ import com.gic.haoban.manage.service.service.MaterialCategoryService;
import com.gic.haoban.manage.service.service.MaterialService;
import com.gic.haoban.manage.service.service.MiniprogramSettingService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.util.CommonUtil;
import com.gic.wechat.api.enums.QywxMediaTypeEnum;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import com.github.pagehelper.PageHelper;
......@@ -527,7 +525,7 @@ public class MaterialApiServiceImpl implements MaterialApiService {
return com.gic.api.base.commons.ServiceResponse.failure("9999","参数异常") ;
}
String unionString = combinedQDTO.getUnionString();
String key = ImageDraw.IMAGE_REDIS_KEY + unionString;
String key = ImageCombined.IMAGE_REDIS_KEY + unionString;
String cache = (String)RedisUtil.getCache(key);
if (StringUtils.isNotBlank(cache)) {
return com.gic.api.base.commons.ServiceResponse.success(cache);
......
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.JSONResponse;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.qdto.combined.CombinedQDTO;
import com.gic.haoban.manage.service.context.draw.ImageDraw;
import com.gic.haoban.manage.service.context.combined.ImageCombined;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.wechat.api.enums.QywxMediaTypeEnum;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import org.junit.Test;
import org.junit.runner.RunWith;
......@@ -39,7 +36,7 @@ public class QWmediaTest {
combinedQDTO.setLineOne(STORE_NAME);
combinedQDTO.setLineTwo(GUIDE_NAME);
String[] arr = null ;
byte[] combinedImageData = ImageDraw.getCombinedImage(combinedQDTO);
byte[] combinedImageData = ImageCombined.getCombinedImage(combinedQDTO);
// 将 BufferedImage 写入 ByteArrayOutputStream
if(LARGE_IMAGE_URL.contains("?")) {
arr = LARGE_IMAGE_URL.split("\\?")[0].split("/") ;
......
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