All Downloads are FREE. Search and download functionalities are using the official Maven repository.

zhao.utils.MAIN Maven / Gradle / Ivy

The newest version!
package zhao.utils;

import top.lingyuzhao.utils.IOUtils;
import top.lingyuzhao.utils.Palette;
import top.lingyuzhao.utils.PaletteGenerator;
import top.lingyuzhao.utils.PalettePng;

import javax.imageio.ImageIO;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;

/**
 * @author zhao
 */
public class MAIN {
    public static void main(String[] args) throws IOException {
        try (final FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\zhao\\Downloads\\p1.palette")) {
            // 将随机生成器装载到 RGB_8 模式中
            PalettePng.RGB_8.setPaletteGenerator(PaletteGenerator.RANDOM255);

            // 设置随机种子
            PaletteGenerator.RANDOM255.random.setSeed(20);
            // 将当前的调色板数据缓存 并起名为 a (这个时候会自动生成调色板数据)
            PalettePng.RGB_8.cache("a");

            // 获取到调色板对象
            Palette palette = PalettePng.RGB_8.getCache("a");
            // 提取出调色板的 byte 数据
            final byte[] byteArray = palette.toByteArray();
            System.out.println(Arrays.toString(byteArray));
            // 关闭调色板对象
            palette.close();

            // 将数据输出到文件系统
            final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArray);
            IOUtils.copy(byteArrayInputStream, fileOutputStream, true);
        }

        // 从文件系统读取出来
        try (final FileInputStream fileInputStream = new FileInputStream("C:\\Users\\zhao\\Downloads\\p1.palette")) {
            // 读取的时候 最后一个参数代表的是是否要支持透明
            final Palette palette = new Palette(fileInputStream, false);
            // 将调色板数据直接设置到 RGB_8 模式中
            PalettePng.RGB_8.setPalette(palette.getPalette());
        }

        // 开始使用我们从文件中读取到的调色板来压缩一个文件
        try (final BufferedInputStream bufferedInputStream = new BufferedInputStream(Files.newInputStream(Paths.get("C:\\Users\\zhao\\Downloads\\微信图片_20241113125600.png")))) {
            final ByteArrayOutputStream translate1 = PalettePng.RGB_8.translate(ImageIO.read(bufferedInputStream));
            try (final FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\zhao\\Downloads\\微2.png")) {
                fileOutputStream.write(translate1.toByteArray());
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy