【发布时间】:2014-12-02 20:44:34
【问题描述】:
我正在尝试将 8 位灰度图像字节数组转换为 java 中的 jpg 图像格式。
static byte[] bytes = new byte[]{126, 126, 127, -128};
public static void main(String[] args) throws IOException {
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
Iterator<?> readers = ImageIO.getImageReadersByFormatName("jpg");
ImageReader reader = (ImageReader) readers.next();
Object source = bis;
ImageInputStream iis = ImageIO.createImageInputStream(source);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
Image image = reader.read(0, param);
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g2 = bufferedImage.createGraphics();
g2.drawImage(image, null, null);
File imageFile = new File("C:\\newrose3.jpg");
ImageIO.write(bufferedImage, "jpg", imageFile);
System.out.println(imageFile.getPath());
}
我有包含图像数据的字节,我想在 java 中将其转换为可读的图像格式。
【问题讨论】:
-
你有什么问题?
-
我的问题是如何将图像字节数组 {126, 126, 127, -128} 转换为任何可读的图像格式?
-
{126, 126, 127, -128}应该是什么格式?对于完整的 JPEG 流来说,它有点短。那是像素值吗? -
是的,这是灰度像素数据
标签: java image image-processing