package com.ishop.merchant.util; import com.fasterxml.jackson.databind.node.ArrayNode; import com.walker.infrastructure.utils.JsonUtils; import com.walker.infrastructure.utils.StringUtils; import java.util.ArrayList; import java.util.List; public class ImageUtils { /** * 把给定的图片路径集合,分别拼接上前缀,在商品轮播图字段中常用。 * @param images ["img/001/demo.png", "img/002/demo.png", ""] * @param prefix 前缀,如:http://localhost:8082/admin/ 就是方法 getCdnUrl() * @return 返回路径中统一拼接前缀 * @date 2023-06-17 */ public static final String combineMultiImageUrl(String images, String prefix){ List combinedImageList = new ArrayList<>(4); try { ArrayNode nodes = JsonUtils.toJsonArray(images); for(int i=0; i< nodes.size(); i++){ // nodes.set(i, prefix + nodes.get(i).asText()); combinedImageList.add(prefix + nodes.get(i).asText()); } return JsonUtils.objectToJsonString(combinedImageList); } catch (Exception e) { throw new RuntimeException("图片集合转json数组错误:" + images, e); } } /** * 把数组中多个图片路径,替换后,重新组成json数组。清除掉前缀。 * @param images ["http://local/a.png","http://local/b.png"] * @param prefix 前缀 * @return 替换后,消除前缀。 * @date 2023-07-20 */ public static final String clearCdnMultiImageUrl(String images, String prefix){ List clearImageList = new ArrayList<>(4); try { ArrayNode nodes = JsonUtils.toJsonArray(images); for(int i=0; i< nodes.size(); i++){ String img = nodes.get(i).asText().replace(prefix, StringUtils.EMPTY_STRING); clearImageList.add(img); } return JsonUtils.objectToJsonString(clearImageList); } catch (Exception e) { throw new RuntimeException("图片集合转json数组错误:" + images, e); } } }