在java中更改图像格式而不保存

在java中更改图像格式而不保存,java,png,Java,Png,我想读取一个图像,然后更改其格式,但不保存它 例如,我可以像这样读取图像 BufferedImage img=ImageIO.read(新文件(文件名)) 然后我想更改img的格式,例如从jpeg改为png。 我找到的唯一方法是使用ImageIO.read来写入然后读取新图像,但这似乎是一种有效的方法。当您通过 BufferedImage img=ImageIO.read(new File('myimage.png')); 您不仅在读取它,而且在解码它,也就是说,将PNG格式的原始字节转换为应

我想读取一个图像,然后更改其格式,但不保存它

例如,我可以像这样读取图像
BufferedImage img=ImageIO.read(新文件(文件名))

然后我想更改
img
的格式,例如从jpeg改为png。 我找到的唯一方法是使用
ImageIO.read
来写入然后读取新图像,但这似乎是一种有效的方法。

当您通过

BufferedImage img=ImageIO.read(new File('myimage.png'));
您不仅在读取它,而且在解码它,也就是说,将PNG格式的原始字节转换为应用程序或API可以操作(或显示)的一些“原始”格式—在本例中,是一个
buffereImage
。一旦完成此操作,就会忘记此图像来自PNG文件的事实。要将其读取为PNG并保存为JPEG,您需要将其解码(作为PNG),然后将其编码(作为JPG)

我想读取一个图像,然后更改其格式,但不保存它

图像的“格式”(在PNG/JPEG意义上)为您提供了一种按位序列打包图像的方法。所以,你的愿望毫无意义。最多,您可以将这些位存储在内存中(为什么?),但这与“保存”相同(保存到内存而不是磁盘)。

当您通过

BufferedImage img=ImageIO.read(new File('myimage.png'));
您不仅在读取它,而且在解码它,也就是说,将PNG格式的原始字节转换为应用程序或API可以操作(或显示)的一些“原始”格式—在本例中,是一个
buffereImage
。一旦完成此操作,就会忘记此图像来自PNG文件的事实。要将其读取为PNG并保存为JPEG,您需要将其解码(作为PNG),然后将其编码(作为JPG)

我想读取一个图像,然后更改其格式,但不保存它

图像的“格式”(在PNG/JPEG意义上)为您提供了一种按位序列打包图像的方法。所以,你的愿望毫无意义。最多,您可以将这些位存储在内存中(为什么?),但这与“保存”相同(保存到内存而不是磁盘)。

当您通过

BufferedImage img=ImageIO.read(new File('myimage.png'));
您不仅在读取它,而且在解码它,也就是说,将PNG格式的原始字节转换为应用程序或API可以操作(或显示)的一些“原始”格式—在本例中,是一个
buffereImage
。一旦完成此操作,就会忘记此图像来自PNG文件的事实。要将其读取为PNG并保存为JPEG,您需要将其解码(作为PNG),然后将其编码(作为JPG)

我想读取一个图像,然后更改其格式,但不保存它

图像的“格式”(在PNG/JPEG意义上)为您提供了一种按位序列打包图像的方法。所以,你的愿望毫无意义。最多,您可以将这些位存储在内存中(为什么?),但这与“保存”相同(保存到内存而不是磁盘)。

当您通过

BufferedImage img=ImageIO.read(new File('myimage.png'));
您不仅在读取它,而且在解码它,也就是说,将PNG格式的原始字节转换为应用程序或API可以操作(或显示)的一些“原始”格式—在本例中,是一个
buffereImage
。一旦完成此操作,就会忘记此图像来自PNG文件的事实。要将其读取为PNG并保存为JPEG,您需要将其解码(作为PNG),然后将其编码(作为JPG)

我想读取一个图像,然后更改其格式,但不保存它


图像的“格式”(在PNG/JPEG意义上)为您提供了一种按位序列打包图像的方法。所以,你的愿望毫无意义。最多,您可以将这些位存储在内存中(为什么?),但这与“保存”相同(保存到内存而不是磁盘)。

您没有其他选择
buffereImage
是“未格式化的”(就文件格式而言,它是图像数据和颜色模型的表示,可在Java及其相关类中使用),所以你问的其实毫无意义
BuffereImage
现在不是它来自什么格式,你没有其他选择了
BuffereImage
是“未格式化的”(就文件格式而言,它是图像数据和颜色模型的表示,可以在Java及其相关类中使用),因此你所问的实际上没有意义
BuffereImage
现在不是它来自什么格式,你没有其他选择了
BuffereImage
是“未格式化的”(就文件格式而言,它是图像数据和颜色模型的表示,可以在Java及其相关类中使用),因此你所问的实际上没有意义
BuffereImage
现在不是它来自什么格式,你没有其他选择了
BuffereImage
是“未格式化的”(就文件格式而言,它是图像数据和颜色模型的表示,可以在Java及其相关类中使用),因此你所问的实际上没有意义
BuffereImage
现在不知道它来自什么格式我实际上想把照片从我的电脑发送到服务器,但它是非压缩格式的。这就是为什么在发送之前,我希望将照片转换为需要较少空间的格式。阅读->更改格式->发送在您的上下文中,“发送”图像是什么意思?将其写入套接字?如果是,则使用
ImageIO写入。将
写入套接字流,而不是写入文件。无法逃脱“解码(从JPEG或其他格式)+编码(到PNG或其他格式)”序列。我实际上想将照片从我的计算机发送到服务器,但它是非压缩格式的。这就是为什么在发送之前,我希望将照片转换为需要较少空间的格式。阅读->更改格式->发送在您的上下文中,“发送”图像是什么意思?将其写入套接字?如果是,则使用
ImageIO写入。将
写入套接字流,而不是写入文件。这是不可能的