我正在关注,http://www.javaworld.com/article/2077561/learn-java/java-tip-60--saving-bitmap-files-in-java.html通过java创建bmp文件
我用谷歌搜索创建双层(即。depth =1
)图像与颜色表,像素颜色索引在java但没有多大帮助。
任何有关使用颜色表创建双层图像的帮助,java中的像素颜色索引都会非常值得注意!
答案 0 :(得分:1)
你提到的文章很旧,可能已经过时了。
您应该可以使用BufferedImage
(包含您选择的颜色)创建TYPE_BYTE_BINARY
类型IndexColorModel
,最后使用ImageIO.write(image, "BMP", file)
来编写结果将图像转换为BMP文件。
如果您想了解一般的BMP格式,WikiPedia article on BMP是一个非常好的资源。
答案 1 :(得分:1)
根据Mr.Harald K的建议,以下java代码创建并将双层图像写入文件:
package imageprocessing;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.awt.Color;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
public class WriteBmpFile {
public static void main(String[] args) {
SimpleDateFormat timeFormat = new SimpleDateFormat("hh_mm_ss");
String path = "D:\\Project\\Images\\";
String onlyBmpFileName = "Img_" + timeFormat.format(new Date());
String bmpExtension = ".bmp";
String bmpFilePath = path + onlyBmpFileName + bmpExtension;
int imgRows = 32;
int imgCols = 32;
BufferedImage buffBiLevelImg = new BufferedImage(imgRows, imgCols, BufferedImage.TYPE_BYTE_BINARY);
for (int r = 0; r <imgRows; r++) {
for (int c = 0; c < imgCols; c++) {
if ((r + c) % 2 == 0) {
buffBiLevelImg.setRGB(r, c, Color.WHITE.getRGB());
} else {
buffBiLevelImg.setRGB(r, c, Color.BLACK.getRGB());
}
}
}
try {
ImageIO.write(buffBiLevelImg, "bmp", new File(bmpFilePath));
} catch (IOException ioe) {
System.out.println("Exception Occured While Creating or Writing bitmap image ! and Stack trace is :\n " + ioe);
}
}
}