package cn.com.citycloud.rent.service.impl;

import cn.com.citycloud.rent.dao.InitDao;
import cn.com.citycloud.rent.service.InitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * @author YC
 * @createDate 2023/8/9 10:04
 **/
@Service
@Transactional
public class InitServiceImpl implements InitService {

    @Autowired
    private InitDao initDao;
    @Override
    public String init() {
        return initDao.init();
    }

    public static void main(String[] args) {
        // 读取图片文件
        File imageFile = new File("E:\\images\\logo\\1024.jpg");
        try {
            // 将图片转换为BufferedImage对象
            BufferedImage bufferedImage = ImageIO.read(imageFile);

            // 设置字符画的宽度和高度
            int asciiWidth = 80;
            int asciiHeight = 40;

            // 缩放图片以适应字符画的宽度和高度
            BufferedImage resizedImage = new BufferedImage(asciiWidth, asciiHeight, BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = resizedImage.createGraphics();
            g2d.drawImage(bufferedImage, 0, 0, asciiWidth, asciiHeight, null);
            g2d.dispose();

            // 将图片转换为字符画
            char[] asciiChars = {'@', '#', 'S', '%', '?', '*', '+', ';', ':', ',', '.'};
            StringBuilder asciiArt = new StringBuilder();
            for (int y = 0; y < asciiHeight; y++) {
                for (int x = 0; x < asciiWidth; x++) {
                    Color pixelColor = new Color(resizedImage.getRGB(x, y));
                    int grayValue = (pixelColor.getRed() + pixelColor.getGreen() + pixelColor.getBlue()) / 3;
                    int index = Math.min((int) (grayValue * asciiChars.length / 255.0), asciiChars.length - 1);
                    asciiArt.append(asciiChars[index]);
                }
                asciiArt.append("\n");
            }

            // 输出字符画
            System.out.println(asciiArt.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

