c java gif 夺宝奇兵_java游戏:将GIF转 字符GIF

该博客介绍了一个Java程序,用于将GIF图片转换为字符形式的GIF。程序读取输入的GIF文件,将其逐帧处理并保存为一系列字符图片,最终用户可以利用其他工具将这些字符图片合并成字符GIF。核心代码涉及到图像处理和文件写入操作。
摘要由CSDN通过智能技术生成

【实例简介】

java实现的由GIF转字符GIF

【实例截图】

ef4c360061b26b4c961334ce444f49ae.gif

c217175adb943e16949e5202165bbe09.gif

【核心代码】

package yumo.game;

import java.awt.Container;

import java.awt.EventQueue;

import java.awt.Toolkit;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class Client {

public static String input = "1.gif"; //gif图片路径,推荐使用像素在400*400以内的

public static String output = "charGif//"; //gif图片生成路径,这里没有整合AnimatedGifEncoder包

//所以生成的是一些jpg图片,需要自己借助其他工具整个成gif

//如果有条件可以继续改进,直接生成一个gif文件

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

MainFrame mainFrame = new MainFrame();

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

mainFrame.setVisible(true);

}

});

}

}

class MainFrame extends JFrame {

private int x;

private int y;

public static int WIDTH = 0;

public static int HEIGHT = 0;

{

Toolkit kit = Toolkit.getDefaultToolkit();

int screen_width = kit.getScreenSize().width;

int screen_height = kit.getScreenSize().height;

x = (screen_width-WIDTH)/2;

y = (screen_height-HEIGHT)/2;

}

public MainFrame() {

setTitle("CharacterGIF_1.0 by YuMo");

initBounds();

createGIF();

setBounds(x, y, WIDTH, HEIGHT);

setResizable(false);

setIconImage(null);

JPanel panel = new GamePanel();

Container container = getContentPane();

container.add(panel);

}

//将字符图片输出到指定目录

public void createGIF() {

BufferedImage[] charImgs = ImgToCharacter.getCharImgs();

try {

for (int i=0; i

File file = new File(Client.output i ".jpg");

ImageIO.write(charImgs[i], "jpg", file);

}

} catch (IOException e) {

e.printStackTrace();

}

System.out.println("图片输出完成!");

}

public void initBounds() {

ImgToCharacter.readGiF();

ImgToCharacter.draw();

BufferedImage[] charImgs = ImgToCharacter.getCharImgs();

int max_width = 0;

int max_height = 0;

for (BufferedImage img : charImgs) {

if(img.getWidth() > max_width)

max_width = img.getWidth();

if(img.getHeight() > max_height)

max_height = img.getHeight();

}

WIDTH = max_width;

HEIGHT = max_height;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值