diff --git a/common/src/main/java/com/micro/fast/common/util/FileUtil.java b/common/src/main/java/com/micro/fast/common/util/FileUtil.java index acb90df..1eede01 100644 --- a/common/src/main/java/com/micro/fast/common/util/FileUtil.java +++ b/common/src/main/java/com/micro/fast/common/util/FileUtil.java @@ -1,44 +1,60 @@ package com.micro.fast.common.util; import java.io.File; + /** * 文件操作工具类 * create by lishouyu 2017/08/27 * email 18332763730@163.com * - * last edit lishouyu 2017/08/27 + * last edit lishouyu 2017/09/07 * email 18332763730@163.com * 添加递归修改文件夹下所有特定文件的扩展名的方法 */ public class FileUtil { - /** - * 修改文件夹下的所有符合条件的文件的扩展名,递归文件夹下所有文件 - * @param dir 文件夹下的路径 - * @param oldExtensionName 旧的文件扩展名 - * @param newExtensionName 新的文件扩展名 - */ - public static void ModifyFileExtensionNameInDir(File dir,String oldExtensionName,String newExtensionName){ - //判断输入的文件是否是文件夹 - boolean isdirectory = dir.isDirectory(); - if (isdirectory==true){ - //获取目录下的所有的文件以及目录 - File[] files = dir.listFiles(); - if (files.length>0){ - for (File file:files){ - if (file.isDirectory()){ - ModifyFileExtensionNameInDir(file,oldExtensionName,newExtensionName); - }else{ - String fileName = file.getName(); - if (fileName.endsWith(oldExtensionName)){ - //去掉扩展名 - int lastIndexOfPoint = fileName.lastIndexOf('.'); - String newFilename = fileName.substring(0, lastIndexOfPoint); - //重命名文件 - file.renameTo(new File(file.getParent()+"/"+newFilename+newExtensionName)); - } - } - } - } + /** + * 修改文件夹下的所有符合条件的文件的扩展名,递归文件夹下所有文件 + * + * @param dir 文件夹下的路径 + * @param oldExtensionName 旧的文件扩展名 .jpg + * @param newExtensionName 新的文件扩展名 .png + */ + public static void modifyFileExtensionNameInDir(File dir, String oldExtensionName, String newExtensionName) { + //1.判断输入的文件是否是文件夹 + boolean isdirectory = dir.isDirectory(); + if (isdirectory == true) { + //获取目录下的所有的文件以及目录 + File[] files = dir.listFiles(); + if (files != null && files.length > 0) { + for (File file : files) { + if (file.isDirectory()) { + modifyFileExtensionNameInDir(file, oldExtensionName, newExtensionName); + } else { + modifyFileExtensionName(file,oldExtensionName,newExtensionName); + } } + } + } else { + File file = dir; + modifyFileExtensionName(file,oldExtensionName,newExtensionName); } + } + + /** + * 修改单个文件的扩展名 + * @param file + * @param oldExtensionName + * @param newExtensionName + */ + public static void modifyFileExtensionName(File file, String oldExtensionName, String newExtensionName) { + String fileName = file.getName(); + if (fileName.endsWith(oldExtensionName)) { + //去掉扩展名 + int lastIndexOfPoint = fileName.lastIndexOf('.'); + String newFilename = fileName.substring(0, lastIndexOfPoint); + //重命名文件 + file.renameTo(new File(file.getParent() + "/" + newFilename + newExtensionName)); + } + } + } \ No newline at end of file diff --git a/common/src/main/java/com/micro/fast/common/util/My.java b/common/src/main/java/com/micro/fast/common/util/My.java index bd03401..8513aea 100644 --- a/common/src/main/java/com/micro/fast/common/util/My.java +++ b/common/src/main/java/com/micro/fast/common/util/My.java @@ -1,6 +1,9 @@ package com.micro.fast.common.util; +/** + * 永远 + */ public class My { private static final String world="李新"; @Override diff --git a/common/src/main/java/com/micro/fast/common/util/WatermarkerUtil.java b/common/src/main/java/com/micro/fast/common/util/WatermarkerUtil.java new file mode 100644 index 0000000..96cf96a --- /dev/null +++ b/common/src/main/java/com/micro/fast/common/util/WatermarkerUtil.java @@ -0,0 +1,183 @@ +package com.micro.fast.common.util; + +import com.sun.image.codec.jpeg.JPEGCodec; +import com.sun.image.codec.jpeg.JPEGImageEncoder; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.UUID; + +/** + * 图片添加水印工具类 + * create by lishouyu 2017/09/05 + * email 18332763730@163.com + * + * last edit lishouyu 2017/09/07 + * email 18332763730@163.com + */ +public class WatermarkerUtil { + + /** + * 默认的字体 + */ + private String fontFamily = "微软雅黑"; + /** + * 默认的字体样式 + */ + private int fontStyle = Font.BOLD; + /** + * 默认的文字大小 + */ + private int fontSize = 12; + /** + * 默认的字体颜色 + */ + private Color fontColor = Color.WHITE; + /** + * 默认的水印右侧距离原图最右边的距离 + */ + private int x = 10; + /** + * 默认的水印的下侧距离原图下侧的距离 + */ + private int y = 10; + /** + * 默认的透明度 + */ + private float alpha = 0.9F; + + /** + * 为图片添加文字水印 + * @param text 要添加的水印的文字内容 + * @param inputImage 输入的图片文件 + * @param filePath 生成图片的输出路径 + * @return + */ + public File markerWord(String text,File inputImage,String filePath){ + String imageName = inputImage.getName(); + File file; + try { + //1.将输入的图片文件解码为图片格式 + Image image = ImageIO.read(inputImage); + //2.获取原图的宽度和高度 + int width = image.getWidth(null); + int height = image.getHeight(null); + //3.创建BufferImage对象用于存放原图片.图片的高度和宽度等于原图片的高度和宽度,颜色采用rbg模式 + BufferedImage bufferedImage = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); + //4.使用bufferImage对象创建画图工具对象,并将原图绘制到bufferImage中 + Graphics2D graphics = bufferedImage.createGraphics(); + graphics.drawImage(image,0,0,width,height,null); + //5.设置水印字体的样式 + graphics.setFont(new Font(fontFamily,fontStyle,fontSize)); + graphics.setColor(fontColor); + //6.设置水印图片的位置 + //6.1获取原图片和水印的高度以及宽度差,调整图片的位置 + int textLength = getTextLength(text); + int widthDiff = width-textLength; + int heightDiff = height-getFontSize(); + if (widthDiff1){ + textWidth++; + }else{ + textWidth +=0.5F; + } + } + //2.等同的中文字符向上取整然后乘于单个字符的宽度 + return (int) Math.ceil(textWidth)*fontSize; + } + + public String getFontFamily() { + return fontFamily; + } + + public void setFontFamily(String fontFamily) { + this.fontFamily = fontFamily; + } + + public int getFontStyle() { + return fontStyle; + } + + public void setFontStyle(int fontStyle) { + this.fontStyle = fontStyle; + } + + public int getFontSize() { + return fontSize; + } + + public void setFontSize(int fontSize) { + this.fontSize = fontSize; + } + + public Color getFontColor() { + return fontColor; + } + + public void setFontColor(Color fontColor) { + this.fontColor = fontColor; + } + + public int getX() { + return x; + } + + public void setX(int x) { + this.x = x; + } + + public int getY() { + return y; + } + + public void setY(int y) { + this.y = y; + } + + public float getAlpha() { + return alpha; + } + + public void setAlpha(float alpha) { + this.alpha = alpha; + } +} diff --git a/common/src/test/java/com/micro/fast/common/util/WatermarkerUtilTest.java b/common/src/test/java/com/micro/fast/common/util/WatermarkerUtilTest.java new file mode 100644 index 0000000..ee49fef --- /dev/null +++ b/common/src/test/java/com/micro/fast/common/util/WatermarkerUtilTest.java @@ -0,0 +1,15 @@ +package com.micro.fast.common.util; + +import org.junit.Test; + +import java.io.File; + +import static org.junit.Assert.*; + +public class WatermarkerUtilTest { + @Test + public void markerWord() throws Exception { + new WatermarkerUtil().markerWord("李守余",new File("/root/dev/u=132629542,1898058257&fm=27&gp=0.jpg"),"/home"); + } + +} \ No newline at end of file