package com.apobates.forum.attention;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Optional;

/**
 * 只针对单个图片地址
 * @author xiaofanku
 * @since 20200516
 */
public interface ImagePathConvert {
    /**
     * 编码图片地址
     *
     * @param imageURL 待编码的图片地址,允许为null
     * @param directoryEnum 图片目录的存储形式: 默认:存储到bucket;本地:存储到应用站内,适用于内置的会员头像
     * @return
     */
    Optional<String> encode(URL imageURL, ImageDirectoryEnum directoryEnum);
    
    /**
     * 解码图片地址
     *
     * @param imageEncodeURL 已经编码的图片地址,允许为null
     * @param directoryEnum 图片目录的存储形式: 默认:存储到bucket;本地:存储到应用站内,适用于内置的会员头像
     * @param scale 图片的尺寸,若为null表示自动
     * @return
     * @throws java.net.MalformedURLException
     */
    Optional<URL> decode(String imageEncodeURL, ImageDirectoryEnum directoryEnum, String scale)throws MalformedURLException;
}