Web浏览器中的图像与Java中的图像之间的差异
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Web浏览器中的图像与Java中的图像之间的差异,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2033字,纯文字阅读大概需要3分钟。
内容图文
![Web浏览器中的图像与Java中的图像之间的差异](/upload/InfoBanner/zyjiaocheng/770/cda4a3971d8640ad99e3677c29f1656b.jpg)
我有一个来自URL(我公司内部)的PNG图像.当我在Web浏览器中导航到该URL时,我正确地看到了图像(具有透明度).我可以从Chrome的网络工具中看到,它会像预期的那样以图像/ png mime类型返回.我可以将图像从浏览器保存到我的本地硬盘驱动器,最终大小约为32kb.
我写了一个简单的Java程序来拉下图像并以编程方式保存它.保存图像代码非常简单,如下所示:
public static void saveImage(String imageUrl, String destinationFile) throws IOException {
URL url = new URL(imageUrl);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(destinationFile);
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
is.close();
os.close();
}
但是,每当我运行此程序时,保存的图像都会失真.除了失去透明度之外,它最终看起来大致相同.它的大小只有4kb左右.除此之外,只看字节我可以看到前3个字节是“GIF”.
有人能帮我理解造成差异的原因吗?
(注意:我在两种情况下使用的图像URL实际上指向使用ImageIO.read从实际图像URL返回BufferedImage的Java Web应用程序.
@RequestMapping(value="/{id}", method={RequestMethod.GET,RequestMethod.POST})
public @ResponseBody BufferedImage getImage(@PathVariable String id) {
try {
//Modified slightly to protect the innocent
return ImageIO.read((new URL(IMAGE_URL + id)).openStream());
} catch (IOException io) {
return defaultImage();
}
}
在我的春天上下文文件中我有:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="order" value="1" />
<property name="messageConverters">
<list>
<!-- Converter for images -->
<bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter">
<property name="defaultContentType" value="image/png"/>
</bean>
<!-- This must come after our image converter -->
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
不确定这个额外的层是否有所作为,但我认为最好提一下.)
任何想法/建议将不胜感激.
谢谢,
B.J.
解决方法:
当您使用ImageIO.read时,您将获得一个BufferedImage对象,该对象采用Java的内部格式,而不是PNG格式.如果你把它写到文件中,你就是在写那个内部表示.我有点惊讶它的可读性.
内容总结
以上是互联网集市为您收集整理的Web浏览器中的图像与Java中的图像之间的差异全部内容,希望文章能够帮你解决Web浏览器中的图像与Java中的图像之间的差异所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。