• 图片处理工具类 util


    PathUtil

    package util;
    
    public class PathUtil {
        private static String seperator = System.getProperty("file.separator");
        
        // 获取根目录
        public static String getImgBasePath() {
            String os = System.getProperty("os.name");
            String basePath = "";
            if(os.toLowerCase().startsWith("win")) {
                basePath = "D:/image/";
            }
            else {
                basePath = "/home/image/";
            }
            basePath = basePath.replace("/", seperator);
            return basePath;
        }
        
        // 获取存取相对路径
        public static String getShopImagePath(long shopId) {
            String imagePath="/upload/item/shop" + shopId + "/";
            return imagePath.replace("/", seperator);
        }
    }

    ImageUtil

    package util;
    
    import java.io.File;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Random;
    
    import javax.imageio.ImageIO;
    
    import org.springframework.web.multipart.commons.CommonsMultipartFile;
    
    import net.coobird.thumbnailator.Thumbnails;
    import net.coobird.thumbnailator.geometry.Position;
    import net.coobird.thumbnailator.geometry.Positions;
    
    public class ImageUtil {
        private final static  SimpleDateFormat sdf= new SimpleDateFormat("yyyyMMddHHmmss");
        private final static  Random r= new Random();
        
        
        public static void genarateThumbnail(CommonsMultipartFile thumbnail, String targetAddr) {
            // 文件名
            String realFileName = getRandomFileName();
            // 拓展名
            String extension = getFileExtension(thumbnail);
            // 创建目录
            makeDirPath(targetAddr);
            String relativeAddr = targetAddr + realFileName + extension;
            File dest = new File(PathUtil.getImgBasePath() + relativeAddr);
            try {
                Thumbnails.of(thumbnail.getInputStream()).size(200, 200).outputQuality(0.8)
                .toFile(dest);
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
        
        /**
         * 创建目标路径所涉及到的目录 
         */
        private static void makeDirPath(String targetAddr) {
            String realFileParentPath = PathUtil.getImgBasePath() + targetAddr;
            File dirPath = new File(realFileParentPath);
            if(!dirPath.exists()) {
                dirPath.mkdirs();
            }
        }
        /**
         * 获取文件拓展名
         * @param targetAddr
         */
        private static String getFileExtension(CommonsMultipartFile cFile) {
            String originalFileName = cFile.getOriginalFilename();
            return originalFileName.substring(originalFileName.lastIndexOf("."));
        }
        
        /**
         * 获取随机文件名
         * @return String 文件随机名
         */
        private static String getRandomFileName() {
            int randNum = r.nextInt(89999) + 10000;
            String nowTimestr = sdf.format(new Date());
            return nowTimestr + randNum;
        }
    
    }
  • 相关阅读:
    青蛙的约会
    欧拉函数
    Tarjan
    计算器的改良
    记忆化搜索
    火柴棒等式
    hdu6601 Keen On Everything But Triangle(主席树)
    P2774 方格取数(网络流)
    第四百二十七、八、九天 how can I 坚持
    第四百二十五、六天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/Draymonder/p/10006819.html
Copyright © 2020-2023  润新知