图片转字符图片工具类

news/2024/11/15 4:13:39/
       ├── 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文件说明


http://www.ppmy.cn/news/75704.html

相关文章

GWAS分析中的GO和KEGG富集分析

上一次,我们介绍如何根据显著性snp,使用bedtools根据上下游距离,根据gff文件注释基因。 这一次,介绍一下如何根据注释的基因,进行富集分析,主要是看一下GWAS定位的基因有没有某一个趋势,也算是…

【JavaSE】Java基础语法(五):数组详解

文章目录 🍸1.1 数组介绍🍸1.2 数组的动态初始化1.2.1 什么是动态初始化1.2.2 动态初始化格式🍸1.3 数组元素访问1.3.1 什么是索引1.3.2 访问数组元素格式1.3.3 示例代码 🍸1.4 内存分配1.4.1 内存概述1.4.2 java中的内存分配 &am…

【数据库】事务与并发控制

文章目录 事务什么是事务事务的主要特征事务分类隐式事务显示事务事务与并发控制锁死锁事务 什么是事务 宏观上看,事务就是一次完整的操作过程;程序角度看,事务是用户自定义的数据操作系统,由多条命令组成,内部所有命令语句要被当成一个整体,要么全部被执行,要么全部不…

HACKABLE: III

文章目录 HACKABLE: III实战演练一、前期准备1、相关信息 二、信息收集1、端口扫描2、访问网站3、查看网站源码4、扫描目录5、访问网址6、查看并下载7、访问网站8、查看文件9、解密10、访问网站11、访问网站12、查看文件13、解密14、访问网站15、访问网站16、下载图片17、隐写1…

MySQL数据库基础4-内置函数

文章目录 日期函数字符串函数数学函数其他函数 日期函数 函数名称描述current date()当前日期current time()当前时间current timestamp()当前时间戳date(datetime)返回datetime参数的日期部分date add(date, interval d_value type)在date中添加日期或时间,interv…

新手如何学习挖漏洞?看这篇就够了【网络安全】

前言 有不少阅读过我文章的伙伴都知道,我从事网络安全行业已经好几年,积累了丰富的经验和技能。在这段时间里,我参与了多个实际项目的规划和实施,成功防范了各种网络攻击和漏洞利用,提高了安全防护水平。 也有很多小伙…

【react 全家桶】react-Hook(上)

本人大二学生一枚&#xff0c;热爱前端&#xff0c;欢迎来交流学习哦&#xff0c;一起来学习吧。 <专栏推荐> &#x1f525;&#xff1a;js专栏 &#x1f525;&#xff1a;vue专栏 &#x1f525;&#xff1a;react专栏 文章目录 14【react-Hook &#xff08;上&#x…

一些好用的软件推荐给你

软件一&#xff1a;nTrun nTrun 是一款非常实用的快速启动工具&#xff0c;它可以帮助用户快速启动各种常用的应用程序、网站和文件。此外&#xff0c;nTrun 还具有以下强大的功能&#xff1a; 自定义快捷键&#xff1a;用户可以根据自己的需求为每个应用程序、网站或文件设置…