需求是输入自定义字符串,生成位深度为1位,尺寸为64*16的bmp位图。
可以自行修改生成图片的大小和图片格式。
位深度通过new BufferedImage时传入的第三个参数进行设置,这里BufferedImage.TYPE_BYTE_BINARY将位深度设置为1。
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.*;
public class DrawPic {
public static void main(String[] args) {
createImage("Google");
}
public static File createImage(String s){
BufferedImage bi = new BufferedImage(64, 16, BufferedImage.TYPE_BYTE_BINARY);
final File file = new File("d:\\javaPic.bmp");
try {
if(file.exists()) {
file.delete();
file.createNewFile();
}
}catch(IOException e) {
e.printStackTrace();
}
if(writeImage(bi,"bmp",file,s)){
System.out.println("绘图成功");
return file;
}
return file;
}
/** 通过指定参数写一个图片 */
public static boolean writeImage(BufferedImage bi, String picType, File file, String s) {
Graphics g = bi.getGraphics();
g.setColor(Color.white);
g.fillRect(0,0,64,16);
g.setColor(Color.BLACK);
g.drawString(s,4,11);
g.dispose();
boolean val = false;
try {
val = ImageIO.write(bi, picType, file);
} catch (IOException e) {
e.printStackTrace();
}
// System.out.println(bi.getColorModel().getPixelSize());
return val;
}
}