From c3dcca22238302f2a58f539418b3d7206ee8d381 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 25 Jul 2024 10:08:02 +0800
Subject: [PATCH] 后台

---
 src/main/java/cc/mrbird/febs/mall/test/ImageToChar.java |  292 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 146 insertions(+), 146 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/test/ImageToChar.java b/src/main/java/cc/mrbird/febs/mall/test/ImageToChar.java
index ea4d0a2..76354a9 100644
--- a/src/main/java/cc/mrbird/febs/mall/test/ImageToChar.java
+++ b/src/main/java/cc/mrbird/febs/mall/test/ImageToChar.java
@@ -1,156 +1,156 @@
-package cc.mrbird.febs.mall.test;
-
-import cn.hutool.core.util.ObjectUtil;
-import com.madgag.gif.fmsware.AnimatedGifEncoder;
-
-import javax.imageio.ImageIO;
-import java.awt.image.BufferedImage;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-
-/**
- * 基于Java的图片字符画(含动图)
- * https://blog.csdn.net/weixin_53070478/article/details/127183821?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-4-127183821-blog-125549681.235^v43^pc_blog_bottom_relevance_base9&spm=1001.2101.3001.4242.3&utm_relevant_index=7
- */
-public class ImageToChar {
-
-    static char[] ss = " `.^,:~\"<!ct+{i7?u30pw4A8DX%#HWM".toCharArray();
-
-    /**
-     * 将输入的图片转换成灰度图片
-     * @param bi
-     * @return
-     */
-    public static BufferedWriter ImageToChar(BufferedImage bi,String target){        //定义灰度方法  返回值为BufferedImage对象
-        int width = bi.getWidth();
-        int height =bi.getHeight();
-        BufferedWriter bw = null;  //构建新的对象模型
-        try {
-            bw = new BufferedWriter(new FileWriter(target),360);
-
-            // 遍历图片的RGB值,把得到的灰度值存到bufferedImage_end中,然后返回bufferedImage_end
-            int autoAdd = 2;//自增
-            for (int j = 0; j < height; j += autoAdd) {
-                for (int i = 0; i < width; i += autoAdd) {
-                    int pixel = bi.getRGB(i, j);
-                    int[] rgb = new int[3];
-                    rgb[0] = pixel >> 16 & 0xff;
-                    rgb[1] = pixel >> 8 & 0xff;
-                    rgb[2] = pixel & 0xff;
-                    int Gray = (rgb[0] * 28 + rgb[1] * 151 + rgb[2] * 77) >> 8; //通过三原色值计算像素点的灰度
-                    int x = Gray * ss.length / 255 % ss.length;     //灰度值的百分比 计算出相应密度的字符表
-                    bw.write(ss[x]);    //输出该字符
-                    bw.write(ss[x]);
-                }
-                bw.newLine();
-            }
-            bw.flush();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return bw;
-    }
-
-    /**
-     * GIF转图片
-     * https://blog.csdn.net/adminstate/article/details/128917090?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171653969716800197097670%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171653969716800197097670&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-128917090-null-null.142^v100^pc_search_result_base8&utm_term=java%20%E5%9B%BE%E7%89%87%E8%BD%ACGif&spm=1018.2226.3001.4187
-     * @param args
-     */
-//    public static void main(String[] args) {
-//        Integer scaleSize = 360;
-//        GifDecoder gd = new GifDecoder();
-//        try{
-//            gd.read(Files.newInputStream(new File("D:\\image\\imageGif.gif").toPath()));
-//            for (int i = 0; i < gd.getFrameCount(); i++) {  //逐帧转换为图片。
-//                BufferedImage frame = gd.getFrame(i);
-//                float width = frame.getWidth(); // 像素
-//                float height = frame.getHeight(); // 像素
-//                float scale = width/scaleSize;
-//                BufferedImage buffImg = new BufferedImage(scaleSize, (int)(height/scale), BufferedImage.TYPE_INT_RGB);
-//                //使用TYPE_INT_RGB修改的图片会变色
-//                buffImg.getGraphics().drawImage(
-//                        frame.getScaledInstance(scaleSize, (int)(height/scale), Image.SCALE_SMOOTH), 0,
-//                        0, null);
+//package cc.mrbird.febs.mall.test;
 //
-//                ImageIO.write(buffImg, "jpg", new File("D:\\image\\gif\\"+i+".png"));
+//import cn.hutool.core.util.ObjectUtil;
+//import com.madgag.gif.fmsware.AnimatedGifEncoder;
+//
+//import javax.imageio.ImageIO;
+//import java.awt.image.BufferedImage;
+//import java.io.BufferedWriter;
+//import java.io.File;
+//import java.io.FileWriter;
+//import java.io.IOException;
+//
+///**
+// * 基于Java的图片字符画(含动图)
+// * https://blog.csdn.net/weixin_53070478/article/details/127183821?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-4-127183821-blog-125549681.235^v43^pc_blog_bottom_relevance_base9&spm=1001.2101.3001.4242.3&utm_relevant_index=7
+// */
+//public class ImageToChar {
+//
+//    static char[] ss = " `.^,:~\"<!ct+{i7?u30pw4A8DX%#HWM".toCharArray();
+//
+//    /**
+//     * 将输入的图片转换成灰度图片
+//     * @param bi
+//     * @return
+//     */
+//    public static BufferedWriter ImageToChar(BufferedImage bi,String target){        //定义灰度方法  返回值为BufferedImage对象
+//        int width = bi.getWidth();
+//        int height =bi.getHeight();
+//        BufferedWriter bw = null;  //构建新的对象模型
+//        try {
+//            bw = new BufferedWriter(new FileWriter(target),360);
+//
+//            // 遍历图片的RGB值,把得到的灰度值存到bufferedImage_end中,然后返回bufferedImage_end
+//            int autoAdd = 2;//自增
+//            for (int j = 0; j < height; j += autoAdd) {
+//                for (int i = 0; i < width; i += autoAdd) {
+//                    int pixel = bi.getRGB(i, j);
+//                    int[] rgb = new int[3];
+//                    rgb[0] = pixel >> 16 & 0xff;
+//                    rgb[1] = pixel >> 8 & 0xff;
+//                    rgb[2] = pixel & 0xff;
+//                    int Gray = (rgb[0] * 28 + rgb[1] * 151 + rgb[2] * 77) >> 8; //通过三原色值计算像素点的灰度
+//                    int x = Gray * ss.length / 255 % ss.length;     //灰度值的百分比 计算出相应密度的字符表
+//                    bw.write(ss[x]);    //输出该字符
+//                    bw.write(ss[x]);
+//                }
+//                bw.newLine();
 //            }
-//        }catch(IOException e){
-//            System.out.println(e);
+//            bw.flush();
+//        } catch (IOException e) {
+//            e.printStackTrace();
 //        }
+//        return bw;
 //    }
-
-
-    /**
-     * 图片转GIF
-     * https://blog.csdn.net/adminstate/article/details/128917090?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171653969716800197097670%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171653969716800197097670&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-128917090-null-null.142^v100^pc_search_result_base8&utm_term=java%20%E5%9B%BE%E7%89%87%E8%BD%ACGif&spm=1018.2226.3001.4187
-     * @param args
-     */
-    public static void main(String[] args) {
-        // 存放jpg文件目录
-        String inpath = "D:\\image\\gif\\";
-
-        //生成GIF
-        AnimatedGifEncoder animatedGifEncoder = new AnimatedGifEncoder();
-        animatedGifEncoder.setRepeat(0);
-        animatedGifEncoder.start("D:\\image\\gif\\screenshot.gif");
-
-        try{
-            //获取目录下所有jpg及其他非gif图片文件
-            String[] pic = new File(inpath).list();
-            BufferedImage[] src = new BufferedImage[pic.length];
-
-            for (int i = 0; i <= src.length; i++) {
-                String pngPath = inpath + i + ".png";
-                if(new File(pngPath).exists()){
-                    animatedGifEncoder.setDelay(100); //设置播放间隔
-                    src[i] = ImageIO.read(new File(pngPath)); // 读入需要播放的jpg文件
-                    animatedGifEncoder.addFrame(src[i]);  //添加到帧中
-                }
-            }
-            animatedGifEncoder.finish();
-        }catch(IOException e){
-            System.err.println("合成gif图失败");
-        }
-    }
-
-    /**
-     * 将GIF图片转换成字符串
-     * @param args
-     */
-//    public static void main(String[] args) {
-//        GifDecoder gd = new GifDecoder();
-//        try{
 //
-//            gd.read(Files.newInputStream(new File("D:\\image\\gif\\screenshot.gif").toPath()));
-//            System.out.println(gd.getFrameCount());
-//            for (int i = 0; i < gd.getFrameCount(); i++) {  //逐帧转换为字符集。
-//                System.out.println(gd.getFrameCount());
-//                BufferedImage frame = gd.getFrame(i);
-//                ImageToChar(frame,"D:\\image\\ImageToChar.txt");    //参数提供缓冲图片对象,以及目标文本输出地址。
-//                try {
-//                    Thread.sleep(500);
-//                } catch (InterruptedException e) {
-//                    e.printStackTrace();
+//    /**
+//     * GIF转图片
+//     * https://blog.csdn.net/adminstate/article/details/128917090?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171653969716800197097670%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171653969716800197097670&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-128917090-null-null.142^v100^pc_search_result_base8&utm_term=java%20%E5%9B%BE%E7%89%87%E8%BD%ACGif&spm=1018.2226.3001.4187
+//     * @param args
+//     */
+////    public static void main(String[] args) {
+////        Integer scaleSize = 360;
+////        GifDecoder gd = new GifDecoder();
+////        try{
+////            gd.read(Files.newInputStream(new File("D:\\image\\imageGif.gif").toPath()));
+////            for (int i = 0; i < gd.getFrameCount(); i++) {  //逐帧转换为图片。
+////                BufferedImage frame = gd.getFrame(i);
+////                float width = frame.getWidth(); // 像素
+////                float height = frame.getHeight(); // 像素
+////                float scale = width/scaleSize;
+////                BufferedImage buffImg = new BufferedImage(scaleSize, (int)(height/scale), BufferedImage.TYPE_INT_RGB);
+////                //使用TYPE_INT_RGB修改的图片会变色
+////                buffImg.getGraphics().drawImage(
+////                        frame.getScaledInstance(scaleSize, (int)(height/scale), Image.SCALE_SMOOTH), 0,
+////                        0, null);
+////
+////                ImageIO.write(buffImg, "jpg", new File("D:\\image\\gif\\"+i+".png"));
+////            }
+////        }catch(IOException e){
+////            System.out.println(e);
+////        }
+////    }
+//
+//
+//    /**
+//     * 图片转GIF
+//     * https://blog.csdn.net/adminstate/article/details/128917090?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171653969716800197097670%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171653969716800197097670&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-128917090-null-null.142^v100^pc_search_result_base8&utm_term=java%20%E5%9B%BE%E7%89%87%E8%BD%ACGif&spm=1018.2226.3001.4187
+//     * @param args
+//     */
+//    public static void main(String[] args) {
+//        // 存放jpg文件目录
+//        String inpath = "D:\\image\\gif\\";
+//
+//        //生成GIF
+//        AnimatedGifEncoder animatedGifEncoder = new AnimatedGifEncoder();
+//        animatedGifEncoder.setRepeat(0);
+//        animatedGifEncoder.start("D:\\image\\gif\\screenshot.gif");
+//
+//        try{
+//            //获取目录下所有jpg及其他非gif图片文件
+//            String[] pic = new File(inpath).list();
+//            BufferedImage[] src = new BufferedImage[pic.length];
+//
+//            for (int i = 0; i <= src.length; i++) {
+//                String pngPath = inpath + i + ".png";
+//                if(new File(pngPath).exists()){
+//                    animatedGifEncoder.setDelay(100); //设置播放间隔
+//                    src[i] = ImageIO.read(new File(pngPath)); // 读入需要播放的jpg文件
+//                    animatedGifEncoder.addFrame(src[i]);  //添加到帧中
 //                }
 //            }
+//            animatedGifEncoder.finish();
 //        }catch(IOException e){
-//            System.out.println(e);
+//            System.err.println("合成gif图失败");
 //        }
 //    }
-
-    /**
-     * 将图片转换成字符串
-     * @param args
-     */
-//    public static void main(String[] args) {
-//        try{
-//            ImageToChar(
-//                    ImageIO.read(new File("D:\\image\\outDpi.png")),
-//                    "D:\\image\\ImageToChar.txt");
-//        }catch(IOException e){
-//            System.out.println(e);
-//        }
-//    }
-}
+//
+//    /**
+//     * 将GIF图片转换成字符串
+//     * @param args
+//     */
+////    public static void main(String[] args) {
+////        GifDecoder gd = new GifDecoder();
+////        try{
+////
+////            gd.read(Files.newInputStream(new File("D:\\image\\gif\\screenshot.gif").toPath()));
+////            System.out.println(gd.getFrameCount());
+////            for (int i = 0; i < gd.getFrameCount(); i++) {  //逐帧转换为字符集。
+////                System.out.println(gd.getFrameCount());
+////                BufferedImage frame = gd.getFrame(i);
+////                ImageToChar(frame,"D:\\image\\ImageToChar.txt");    //参数提供缓冲图片对象,以及目标文本输出地址。
+////                try {
+////                    Thread.sleep(500);
+////                } catch (InterruptedException e) {
+////                    e.printStackTrace();
+////                }
+////            }
+////        }catch(IOException e){
+////            System.out.println(e);
+////        }
+////    }
+//
+//    /**
+//     * 将图片转换成字符串
+//     * @param args
+//     */
+////    public static void main(String[] args) {
+////        try{
+////            ImageToChar(
+////                    ImageIO.read(new File("D:\\image\\outDpi.png")),
+////                    "D:\\image\\ImageToChar.txt");
+////        }catch(IOException e){
+////            System.out.println(e);
+////        }
+////    }
+//}

--
Gitblit v1.9.1