你可以使用Toolkit.createImage(url)而不是ImageIO.read(url)解决这个问题,它使用不同的解码算法实现。

如果您使用的是包含在Sun JDK中的JPEG编码器,那么您还必须确保传递的图像没有alpha通道。

例:

private static final int[] RGB_MASKS = {0xFF0000, 0xFF00, 0xFF};

private static final ColorModel RGB_OPAQUE =

new DirectColorModel(32, RGB_MASKS[0], RGB_MASKS[1], RGB_MASKS[2]);

// ...

String sUrl="http://img01.taobaocdn.com/imgextra/i1/449400070/T2hbVwXj0XXXXXXXXX_!!449400070.jpg";

URL url = new URL(sUrl);

Image img = Toolkit.getDefaultToolkit().createImage(url);

PixelGrabber pg = new PixelGrabber(img, 0, 0, -1, -1, true);

pg.grabPixels();

int width = pg.getWidth(), height = pg.getHeight();

DataBuffer buffer = new DataBufferInt((int[]) pg.getPixels(), pg.getWidth() * pg.getHeight());

WritableRaster raster = Raster.createPackedRaster(buffer, width, height, width, RGB_MASKS, null);

BufferedImage bi = new BufferedImage(RGB_OPAQUE, raster, false, null);

String to = "D:/temp/result.jpg";

ImageIO.write(bi, "jpg", new File(to));

注意:我的猜测是颜色配置文件已损坏,Toolkit.createImage()忽略所有颜色配置文件。如果是,则这将降低具有正确颜色配置文件的JPEG的质量。

java imageio write,java – 使用ImageIO.write jpg文件的问题相关推荐

  1. java imageio处理图像_Linux geoserver调优之Java图像处理优化(原生JAI和ImageIO和java默认库相互转换)...

    注:geoserver 版本 Linux geoserver2.15.0    安装 :bin方式安装(内嵌jetty,非war安装) 一.geoserver调优之Java图像处理优化 1.原生JAI ...

  2. java dpi_用java imageio调整图片DPI,例如从96调整为300

    因项目需求把图片的DPI值提升到300,否则OCR识别产生错乱:直接上源码: 1.图片处理接口: package util.image.dpi; import java.awt.image.Buffe ...

  3. java basicstroke_使用java.awt.BasicStroke动画化虚线

    使用虚线,线程(或Swing Timer)&将它们与repaint()结合起来,并对破折号的起点和终点进行一些调整 – 然后就可以了. 例 package test; import java. ...

  4. java整理软件--- Java OCR 图像智能字符识别技术,可识别中文,但是验证码不可以识别...已测识别中文效果很好...

    国内最专业的OCR软件只有2家,清华TH-OCR和汉王OCR,看了很多的OCR技术 发现好多对英文与数字的支持都很好,可惜很多都不支持中文字符.Asprise-OCR,Tesseract 3.0以前的 ...

  5. java x86 模拟,Java模拟实现百度文档在线浏览

    这个思路是我参考网上而来,代码是我实现. 采用Apache下面的OpenOffice将资源文件转化为pdf文件,然后将pdf文件转化为swf文件,用FlexPaper浏览. ok, A.下载OpenO ...

  6. java删除不,Java文件不能删除,该怎么解决

    Java文件不能删除 一张图片,判断其长宽,长宽不满足条件的图片删除. 我用的Imageio读取图片文件,获得bufferedImage,然后获取长宽进行判断. 然后使用file.delete()删除 ...

  7. java水印图片,Java添加水印+图片水印+文字水印

    水印的处理...以下有两种方式: 第一种是添加文字水印: 第二种是添加图片水印 现在贴上代码 2种的源码 package com.yjf.image; import java.awt.AlphaCom ...

  8. java中jtansforms,java – 使用AffineTransform旋转图像

    主要问题(我可以看到)是Graphics上下文的转换,它偏移了旋转发生的位置. 我认为"默认情况下"旋转发生在图形上下文的顶部/左角(其中它是0x0位置,你已经翻译成其他东西),这 ...

  9. java+icepdf+下载_Java使用icepdf将pdf文件按页转成图片

    本文实例为大家分享了Java使用icepdf将pdf文件按页转成图片的具体代码,供大家参考,具体内容如下 Maven icepdf包,这里过滤掉jai-core org.icepdf.os icepd ...

  10. java整理软件--- Java OCR 图像智能字符识别技术,可识别中文,但是验证码不可以识别...已测识别中文效果很好

    国内最专业的OCR软件只有2家,清华TH-OCR和汉王OCR,看了很多的OCR技术发现好多对英文与数字的支持都很好,可惜很多都不支持中文字符.Asprise-OCR,Tesseract 3.0以前的版 ...

最新文章

  1. 整合大数据价值最大化的三个关键因素
  2. mysql having in_正确理解MySQL中的where和having的区别
  3. linux踩内存内存越界,Linux如何调试内存泄漏?超牛干货奉献给你(代码全)
  4. 具有OpenCV和相似度测量的视频输入
  5. 如何在 ASP.NET Core 中使用 Route 特性
  6. 学习C/C++的简单方法
  7. 今天,我收到了蚂蚁金服offer
  8. 如何使用消息队列,Spring Boot和Kubernetes扩展微服务
  9. MATLAB图形界面设计(上)
  10. jfreechart linux图片中文显示乱码解决方法
  11. PIP(Python包管理工具)-Mac环境下安装
  12. 源码目录变了,修改Eclipse配置:工作空间,JDK
  13. 第九章 JSP标签——《跟我学Shiro》[张开涛]
  14. 大数据专业认知实习作业
  15. SRP:单一职责原则
  16. Mac配置环境变量的位置
  17. openbci脑电帽3d打印文件下载
  18. 自已动手修改同花顺K线周期的快捷键
  19. fastqc v0.11.8
  20. 21、python的K-means聚类分析方法案例代码

热门文章

  1. 微软 Win10 更新再出 bug
  2. 思维方式-《终身成长》书中的精髓:决定人与人之间巨大差距的,是你的思维模式。
  3. 【面试被虐】如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?
  4. 实体链指(2)EL:Disambiguation-Only
  5. python+大数据之数据可视化完整版
  6. 爱了,这18个 Python 高效编程技巧真香
  7. 汉堡式折叠html,CSS/HTML - 带CSS的汉堡菜单
  8. Apereo CAS 5.0.X 配置数据库认证方式
  9. 201871010134-周英杰《面向对象程序设计(java)》第二周学习总结
  10. HTTP/3 强势来袭?!