当前位置:编程学习 > JAVA >>

bmp图像转单色图像

现在在做小票打印机的项目,遇到一个困难。小票打印机只支持单易做图mp图片的打印。
现在问题将一张黑白bmp图片(256色的)转为单易做图mp图片。
希望大拿们能帮忙解决一下。万分感谢!!用java和C实现都行。 --------------------编程问答-------------------- 可以先读取这个图片,用BufferedImage包装,setRGB后然后再用ImageIO输出,应该可以的。 --------------------编程问答--------------------
引用 1 楼 fangmingshijie 的回复:
可以先读取这个图片,用BufferedImage包装,setRGB后然后再用ImageIO输出,应该可以的。
我这方面是小白,能不能说的详细点,最好有个实例代码,谢谢! --------------------编程问答-------------------- 还有简单的方式。
try {
BufferedImage src = ImageIO.read(new File("e:\\1.gif")); // 读入源图像
int width = src.getWidth(); // 源图宽
int height = src.getHeight(); // 源图高

Image image = src.getScaledInstance((int) (width), (int) (height),
Image.SCALE_DEFAULT);

BufferedImage tag = new BufferedImage((int) (width),
(int) (height), BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g = tag.createGraphics();

g.drawImage(image, 0, 0, null);

g.dispose();

OutputStream out = new FileOutputStream("e:\\2.gif");
tag.setRGB(5, 5, 123);
ImageIO.write(tag, "GIF", out);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
--------------------编程问答--------------------
引用 3 楼 fangmingshijie 的回复:
还有简单的方式。
try {
BufferedImage src = ImageIO.read(new File("e:\\1.gif")); // 读入源图像
int width = src.getWidth(); // 源图宽
int height = src.getHeight(); // 源图高

Image image = src.getScaledInstance((int) (width), (int) (height),
Image.SCALE_DEFAULT);

BufferedImage tag = new BufferedImage((int) (width),
(int) (height), BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g = tag.createGraphics();

g.drawImage(image, 0, 0, null);

g.dispose();

OutputStream out = new FileOutputStream("e:\\2.gif");
tag.setRGB(5, 5, 123);
ImageIO.write(tag, "GIF", out);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
 tag.setRGB(5, 5, 123);删除,这个不需要 --------------------编程问答-------------------- 可以自己用灰度算法去计算,甚至可以调节灰度算法:Gray=R*0.3+G*0.59+B*0.11

如果要更复杂的处理,推荐用这个开源包:http://www.jhlabs.com/ip/filters/
补充:Java ,  Java相关
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,