Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Qt解码用Java ImageIO类编码的图像 我想用C++显示图像,更准确地使用QT框架。 已使用ImageIO.write方法对图像进行编码,编码方式如下: BufferedImage originalImage = ImageIO.read(new File("c:\\image.jpg")); // convert BufferedImage to byte array ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(originalImage, "jpg", baos); baos.flush(); imageInByte = baos.toByteArray(); baos.close(); 然后,BytErayOutPutsFipe的内容就简单地转储到文件IVI.OUT中,这是我需要转换成图像但使用C++的文件。 我看到image.jpg文件的大小大于image.out文件的大小,因此Java必须进行一些我不知道的压缩或编码。因此,我不能将图像作为JPG读取,然后将其放入QImage或QPixmap对象中_Java_C++_Qt_Javax.imageio - Fatal编程技术网

用Qt解码用Java ImageIO类编码的图像 我想用C++显示图像,更准确地使用QT框架。 已使用ImageIO.write方法对图像进行编码,编码方式如下: BufferedImage originalImage = ImageIO.read(new File("c:\\image.jpg")); // convert BufferedImage to byte array ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(originalImage, "jpg", baos); baos.flush(); imageInByte = baos.toByteArray(); baos.close(); 然后,BytErayOutPutsFipe的内容就简单地转储到文件IVI.OUT中,这是我需要转换成图像但使用C++的文件。 我看到image.jpg文件的大小大于image.out文件的大小,因此Java必须进行一些我不知道的压缩或编码。因此,我不能将图像作为JPG读取,然后将其放入QImage或QPixmap对象中

用Qt解码用Java ImageIO类编码的图像 我想用C++显示图像,更准确地使用QT框架。 已使用ImageIO.write方法对图像进行编码,编码方式如下: BufferedImage originalImage = ImageIO.read(new File("c:\\image.jpg")); // convert BufferedImage to byte array ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(originalImage, "jpg", baos); baos.flush(); imageInByte = baos.toByteArray(); baos.close(); 然后,BytErayOutPutsFipe的内容就简单地转储到文件IVI.OUT中,这是我需要转换成图像但使用C++的文件。 我看到image.jpg文件的大小大于image.out文件的大小,因此Java必须进行一些我不知道的压缩或编码。因此,我不能将图像作为JPG读取,然后将其放入QImage或QPixmap对象中,java,c++,qt,javax.imageio,Java,C++,Qt,Javax.imageio,有人知道ImageIO类如何编码图像吗 有人知道ImageIO类如何编码图像吗 最好的选择可能是阅读Oracle的 它描述了用于编写的基础知识和插件机制。您至少需要阅读第3节(尤其是关于ImageWriter)的第3.4节,也许还需要阅读第4.1节,了解插件概念的介绍 有关如何控制JPEG格式特定写入设置的详细信息,请参阅API文档 PS:您的代码看起来还可以,并且应该提供一个有效的JPEG,前提是ImageIO阅读器插件可以读取您的初始文件(对于非标准文件,com.sun.ImageIO.pl

有人知道ImageIO类如何编码图像吗

有人知道ImageIO类如何编码图像吗

最好的选择可能是阅读Oracle的

它描述了用于编写的基础知识和插件机制。您至少需要阅读第3节(尤其是关于
ImageWriter
)的第3.4节,也许还需要阅读第4.1节,了解插件概念的介绍

有关如何控制JPEG格式特定写入设置的详细信息,请参阅API文档

PS:您的代码看起来还可以,并且应该提供一个有效的JPEG,前提是ImageIO阅读器插件可以读取您的初始文件(对于非标准文件,
com.sun.ImageIO.plugins.JPEGImageReader
非常严格,即使大多数其他软件都乐于读取它们)


PPS:标准的ImageIO JPEG编写器插件(
com.sun.ImageIO.plugins.JPEGImageWriter
)使用JPEG库编写其JPEG流。我不认为你能得到比这更多的“标准”

你有没有试着用Qt来读它?没有。我只是尝试用GIMP和Windows图像查看器打开它,但都失败了。我认为Qt需要jpg格式的图像,而不是这种类型的编码。为什么你解码图像只是为了再次编码?为什么不在Qt中打开图像呢?或者您是否也计划在Java中添加图像处理?PS:使用
ImageIO.write(…)
将使用特定于格式的默认设置对图像进行编码。如果需要更多控制,请使用
ImageReader
ImageWriter
并指定质量设置、元数据等。根据文档,它是“jpeg”,而不是“jpg”
getReaderFormatNames()
应返回支持的格式列表。另外,请检查write()的返回值。@FrankOsterfeld我已经看到Oracle官方文档中使用了
jpeg
jpg
。我更喜欢
jpeg
,但两者都可以工作,并且对于标准的ImageIO-jpeg插件是等效的。检查
write()
的返回值很好!