├── cn.xsshome.imagetool //包名├── convert │ └── ImageToChar //图片转字符图片、文本方法 ├── slideverifycode │ └── SlideVerifyCodeGenerateUtil //滑块验证码工具类代码 │ └── SlideVerifyCode //滑块验证码对象 ├── util │ └── AnimatedGifEncoder //GIF所需工具类代码│ └── Base64Util //图片数据转base64编码工具类 │ └── GifDecoder //Gif图片处理工具类代码│ └── GifImageUtil //GIF图片添加文字特效工具类代码 │ └── GongGeUtil //九宫格图片处理工具类代码 │ └── LZWEncoder //图片处理所需工具类代码│ └── MergeImageUtil //图片特效合并工具类代码│ └── NeuQuant //图片处理所需工具类代码│ └── PngColoringUtil //透明图片增加背景色工具类代码│ └── RotateImageUtil //图片旋转工具类代码│ └── ImageLosslessUtil //图片无损保存工具类代码 │ └── MergeImageFontUtil //图片文字合并工具类代码 │ └── ImageGrayUtil //图片灰度处理工具类代码 │ └── ImageDPIHandleUtil //修改图片DPI工具类代码(仅支持JPG)-基于com.sun.image.codec│ └── ImagePixelUtil //像素风工具类代码│ └── ImageWaterMarkUtil //图片增加水印工具类代码├── zoom └── └── ImageHelper //图片缩放工具类代码
示例代码
public class Sample {public static void main(String[] args) throws Exception {ImageToChar.load("G:/phone.jpg", "F:/gif/woman.txt");//静态图片转字符保存为txt文件ImageToChar.loadGif("C:/Users/Administrator/Desktop/页面录屏显示.gif", "F:/gif/");//动图转为动态的字符图片BufferedImage bi = null;bi = ImageIO.read(new File("G:/body.jpg"));String bytePic = ImageToChar.txtToImageByBase64(bi);//静态图转字符 返回转换后图片的base64System.out.println(bytePic);} }
透明图片增加背景色示例代码
public static void main(String[] args) throws Exception{String image = "F:\\testimg\\1011.png";//原始图片路径String resultImage = "F:\\testimg\\10111700.jpg";//处理后保存的图片路径changePNGBackgroudColor(image,resultImage, Color.pink);//Color.pink 即图片背景颜色}
图片旋转示例代码
public class RotateSample {public static void main(String[] args) throws Exception {long start = System.currentTimeMillis();BufferedImage src = ImageIO.read(new File("E:\\testimg\\glassess.png"));//原图片本地路径BufferedImage des = RotateImageUtil.rotateImage(src,20);//旋转的角度ImageIO.write(des, "png", new File("E:\\testimg\\glassess2.png"));//旋转后保存的图片long end = System.currentTimeMillis();System.out.println("开始时间:" + start+ "; 结束时间:" + end+ "; 总共用时:" + (end - start) + "(ms)");} }
GIF图片加文字特效示例代码
public static void main(String[] args) throws Exception {GifImageUtil gifImageUtil = new GifImageUtil();String imagesavePath = "C:\\Users\\xiaoshuai\\Desktop";//图片保存路径String imagesaveName = String.valueOf(System.currentTimeMillis());//图片保存名称 不包含后缀名String image = "C:\\Users\\xiaoshuai\\Desktop\\db.gif";//原始图片String result = gifImageUtil.gifAddText(imagesavePath,imagesaveName,"微软雅黑",25,Color.pink,image,"图片添加文字","测试一下","1234","4567");System.out.println(result);}
白底图片转换透明底图片示例代码
public static void main(String[] args) {System.out.println(PngConvertUtil.transparentImg("F:/testimg/hand.jpg", "F:/testimg/hand2020.png"));}
增加水印示例代码
public static void main(String[] args) {//水印图片在指定位置BufferedImage image1 = ImageWaterMarkUtil.addImgWaterMark("F://testimg//water.png", "F://testimg//gjy2.jpg", 4);File file = new File("F:\\testimg\\2020082701.jpg");ImageIO.write(image1, "jpg", file);//文本水印 铺满图片BufferedImage image2 = ImageWaterMarkUtil.addFullTextWaterMark("F://testimg//gjy2.jpg","小帅丶代码");File file2 = new File("F:\\testimg\\2020082702.jpg");ImageIO.write(image2, "jpg", file2);//图片水印 铺满图片BufferedImage image3 = ImageWaterMarkUtil.addFullImgWaterMark("F://testimg//gjy2.jpg","F://testimg//water.png");File file3 = new File("F:\\testimg\\2020082703.jpg");ImageIO.write(image3, "jpg", file3);}
GIF图片加文字特效示例图
原始图
转换图
给图片指定区域增加矩形框
原始图
转换图
给透明图片增加背景图
public static void main(String[] args) throws Exception{//最好保证宽或高一致 BufferedImage src = ImageIO.read(new File("F:\\testimg\\gjy2.jpg"));//背景图BufferedImage png = ImageIO.read(new File("F:\\testimg\\banner.png"));//透明图BufferedImage image = MergeImageUtil.mergePendant(src, png, 0, 0, 1);File file = new File("F:\\testimg\\banner320.jpg");//输出图片路径ImageIO.write(image, "jpg", file);}
原始图
透明图
背景图
效果图
给图片增加水印
原图
文本内容
小帅丶代码
水印图片 点击空白即可看到png图片中的内容
增加文本水印铺满图片
增加图片水印铺满图片
增加图片水印指定位置
给图片增加文字(消除锯齿、无损保存处理后图)
public class FontImgMergeSample {/** 字体 */private static String FONT_FAMILY = "方正粗黑宋简体";/** 字体大小 */private static Integer FONT_SIZE = 88;/** 颜色 */private static Color FONT_COLOR = new Color(255,255,255);public static void main(String[] args) throws Exception{long startTime = System.currentTimeMillis();//原图本地路径、保存图的本地路径String sourcePath = "F:\\testfile\\testimg\\banner.jpg";String targetPath = "F:\\testfile\\testimg\\mergebanner.jpg";BufferedImage image = ImageIO.read(new File(sourcePath));//文本String content = "小帅测试代码";Graphics2D g = (Graphics2D) image.getGraphics();//填充文字 从左往右MergeImageFontUtil.setContentToImgLR(content, g, 100, 200,FONT_FAMILY,FONT_SIZE,FONT_COLOR);ImageLosslessUtil.saveLosslessImage(image, targetPath, ImageType.IMAGE_TYPE_JPG);System.out.println("总耗时"+(System.currentTimeMillis()-startTime));} }
原图
处理后的图片
图片灰度处理
public static void main(String[] args) throws ImageTypeException, Exception {String sourcePath = "原图本地路径";String targetPath = "新图保存的本地路径";String imageSuffix = "jpeg";//图片保存格式//图片灰度处理 推荐BufferedImage bufferedImage = ImageGrayUtil.grayImage3ByteBGR(sourcePath);//图片灰度处理 纯黑//BufferedImage bufferedImage = ImageGrayUtil.grayImageByteGRAY(sourcePath);//无压缩保存图片ImageLosslessUtil.saveLosslessImage(bufferedImage,targetPath,imageSuffix); }
原图
处理后的图片 TYPE_BYTE_GRAY
处理后的图片 TYPE_3BYTE_BGR
百叶图
九宫格图
像素风原图
像素风处理后图
源码地址:
imagetool: 🍬图片转字符图片工具类,支持 Gif 动画、图片合并、图片加水印、文字消除锯齿、图片无损保存、图片像素风、九宫格图、百叶图、修改图片DPI等图片处理其他工具类方法。详情请看README.md文件说明