如何在Java中导入和导出原始图像?
正如标题所示,我正在尝试读取和输出一个原始图像文件。我在这个程序中的目标是读取原始图像并进行一些图像处理,然后输出最终图像。我有一个想法如何做这个程序,但我被困在试图读取java的原始图像。我甚至不知道如何将原始图像正确上传到我的项目文件夹中。如有任何建议,将不胜感激。这是我到目前为止的代码(当然我是从一个网站上获取这段代码进行测试的)如何在Java中导入和导出原始图像?,java,image,Java,Image,正如标题所示,我正在尝试读取和输出一个原始图像文件。我在这个程序中的目标是读取原始图像并进行一些图像处理,然后输出最终图像。我有一个想法如何做这个程序,但我被困在试图读取java的原始图像。我甚至不知道如何将原始图像正确上传到我的项目文件夹中。如有任何建议,将不胜感激。这是我到目前为止的代码(当然我是从一个网站上获取这段代码进行测试的) }ImageIO支持GIF、JPEG、PNG、BMP和WBMP,但您也可以找到一些用于RAW的库(例如jrawio),如中所示。ImageIO支持GIF、JPE
}ImageIO支持GIF、JPEG、PNG、BMP和WBMP,但您也可以找到一些用于RAW的库(例如jrawio),如中所示。ImageIO支持GIF、JPEG、PNG、BMP和WBMP,但您也可以找到一些用于RAW的库(例如jrawio),如中所示 或 诚然,
getRGB
更简单。上面我假设扫描大小是宽度,有时是对齐的。RGBA、ARGB和one可能会有所不同
它是一个线性化的一维数组,可以使用IntBuffer
,如果需要,甚至可以将字节顺序更改为小端
Path path = Paths.get("lena.raw");
byte[] content = Files.readAllBytes(path);
IntBuffer buf = ByteBuffer.wrap(content) /*.order(ByteOrder.LITTE_ENDIAN)*/ .asIntBuffer();
int[] rgb = new int[content.length / 4];
buf.get(rgb);
BufferedImage outImage = new BufferedImage(width, length, BufferedImage.TYPE_INT_ARGB);
outImage.setRGB(0, 0, width, height, rgb, 0, width);
ImageIO.write(outImage, "png", new FileOutputStream(...));
还可以查看文件通道和MappedByteBuffer以获得速度和内存使用
可能是第一次出现假颜色(类型为\u INT \u ARGB)
或
诚然,getRGB
更简单。上面我假设扫描大小是宽度,有时是对齐的。RGBA、ARGB和one可能会有所不同
它是一个线性化的一维数组,可以使用IntBuffer
,如果需要,甚至可以将字节顺序更改为小端
Path path = Paths.get("lena.raw");
byte[] content = Files.readAllBytes(path);
IntBuffer buf = ByteBuffer.wrap(content) /*.order(ByteOrder.LITTE_ENDIAN)*/ .asIntBuffer();
int[] rgb = new int[content.length / 4];
buf.get(rgb);
BufferedImage outImage = new BufferedImage(width, length, BufferedImage.TYPE_INT_ARGB);
outImage.setRGB(0, 0, width, height, rgb, 0, width);
ImageIO.write(outImage, "png", new FileOutputStream(...));
还可以查看文件通道和MappedByteBuffer以获得速度和内存使用
可能是第一次出现假颜色(类型为\u INT \u ARGB)
WritableRaster raster = image.getWritableRaster();
Path path = Paths.get("lena.raw");
byte[] content = Files.readAllBytes(path);
IntBuffer buf = ByteBuffer.wrap(content) /*.order(ByteOrder.LITTE_ENDIAN)*/ .asIntBuffer();
int[] rgb = new int[content.length / 4];
buf.get(rgb);
BufferedImage outImage = new BufferedImage(width, length, BufferedImage.TYPE_INT_ARGB);
outImage.setRGB(0, 0, width, height, rgb, 0, width);
ImageIO.write(outImage, "png", new FileOutputStream(...));