ImageUtil 对图片详情进行处理
package com.imooc.myo2o.util;
import java.io.IOException;
import com.imooc.myo2o.dto.ImageHolder;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.geometry.Positions;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class ImageUtil {
private static String bastPath =Thread.currentThread().getContextClassLoader()
.getResource("").getPath();
private static final SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
private static final Random r= new Random();
public static String generateNormalImg(ImageHolder thumbnail, String targetAddr){
String realFileName = getRandomFileName();
String extension = getFileExtension(thumbnail.getImageName());
makeDirPath(targetAddr);
String relativeAddr = targetAddr + realFileName + extension;
File dest = new File(PathUtil.getImgBasePath() + relativeAddr);
try {
Thumbnails.of(thumbnail.getImage()).size(337, 640)
.toFile(dest);
} catch (IOException e) {
e.printStackTrace();
}
return relativeAddr;
}
public static String generateThumbnail(ImageHolder thumbnail, String targetAddr) {
String realFileName = getRandomFileName();
String extension = getFileExtension(thumbnail.getImageName());
makeDirPath(targetAddr);
String relativeAddr = targetAddr + realFileName + extension;
File dest = new File(PathUtil.getImgBasePath() + relativeAddr);
try {
Thumbnails.of(thumbnail.getImage()).size(200, 200)
.toFile(dest);
} catch (IOException e) {
e.printStackTrace();
}
return relativeAddr;
}
private static void makeDirPath(String targetAddr) {
String realFileParenPath = PathUtil.getImgBasePath()+targetAddr;
File dirPath = new File(realFileParenPath);
if(!dirPath.exists()){
dirPath.mkdirs();
}
}
private static String getFileExtension(String fileName) {
return fileName.substring(fileName.lastIndexOf("."));
}
public static String getRandomFileName() {
int rannum = r.nextInt(89999)+10000;
String nowTimeStr = sDateFormat.format(new Date());
return nowTimeStr+rannum;
}
public static void main(String[] args) throws IOException {
Thumbnails.of(new File("D:/haizeiwang.jpg"))
.size(200,200)
.watermark(Positions.BOTTOM_RIGHT,
ImageIO.read(new File(bastPath+"/shuiyin.png")),0.25f)
.outputQuality(0.8f)
.toFile("D:/haizeiwangnew.jpg");
}
public static void deleteFileOrPath(String storePath){
File fileOrPath = new File(PathUtil.getImgBasePath()+storePath);
if(fileOrPath.exists()){
if(fileOrPath.isDirectory()){
File files[] = fileOrPath.listFiles();
for (int i = 0; i < fileOrPath.length(); i++) {
files[i].delete();
}
}
fileOrPath.delete();
}
}
}
PathUtil 对文件的路径进行处理
package com.imooc.myo2o.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:/projectdev/image/";
}else {
basePath = "/home/xiangze/image";
}
basePath = basePath.replace("/",seperator);
return basePath;
}
public static String getShopImagePath(long shopId){
String imagePath = "upload/item/shop/"+shopId+"/";
return imagePath.replace("/",seperator);
}
}