JAVA ImageIO图片处理后变色问题

最初使用ImagIO.Read() 从InputStream 转成BufferImage 然后进行水印添加,普通图片没问题,但是当前端通过JS剪裁传入后就出现变色的问题

压缩前

压缩后

网上查找了很久, 基本确定是ImageIO.Read 的问题,解决方案就变成避免使用这个函数,替代的方案为

Toolkit.getDefaultToolkit().getImage(URL);

但是此方法只能使用URL或者具体路径,那么又回到最初。

后经查询,发现,可以试试将图片的aRGB换成RGB。

Having an image develop a tint usually means the image is being rendered using the wrong colorspace, Adobe RGB vs. sRGB being a perennial favorite. Try changing TYPE_INT_ARGB to TYPE_INT_RGB in your code.

思路就是将ImageIO得到的BufferImage 赋值给一个新的已经设定好RGB的BufferImage, 然后就有以下代码

BufferedImage _img = javax.imageio.ImageIO.read(file);BufferedImage _newImg= new BufferedImage(_img.getWidth(),_img.getHeight(),BufferedImage.TYPE_INT_RGB);_newImg.getGraphics().drawImage(_img, 0, 0, null);

然后再进行压缩,解决。

JAVA ImageIO图片处理后变色相关推荐

  1. java ImageIO.write图片上传变色及背景变黑解决

    java ImageIO.write图片上传变色及背景变黑解决 public void getImage(HttpServletRequest request, HttpServletResponse ...

  2. java导出jar包后,程序运行时读取图片、音乐资源文件

    java导出jar包后,程序运行时读取图片.音乐资源文件 运行时程序就可以把图片.音乐资源加载进入了 start jre/bin/java -jar 名称.jar

  3. (Java版)颈椎病治疗最近云海学长一直对着电脑改bug, 颈椎不舒服, 希望各位小伙伴帮云海学长治治提供一张图片, 将图片旋转后再发给云海学长, 这样学长看图的时候就需要歪着脖子, 时间久了,

    2. 颈椎病治疗 最近云海学长一直对着电脑改bug, 颈椎不舒服, 希望各位小伙伴帮云海学长治治 提供一张图片, 将图片旋转后再发给云海学长, 这样学长看图的时候就需要歪着脖子, 时间久了, 颈椎病就 ...

  4. java 浏览器访问图片不显示_[Java教程]重新上传图片后 地址不变 浏览器加载不到的问题...

    [Java教程]重新上传图片后 地址不变 浏览器加载不到的问题 0 2016-05-27 07:00:50 做项目的时候遇到一个问题: 上传文件以后,相同的地址,第一次加载没有问题,当你操作次数过快, ...

  5. java文本框光标后添加图片_由编辑器从光标处插入图片(失去焦点后仍然可以在原位置插入)实现的富文本编辑器...

    大家都知道,如果只是大概的实现一个简单的富文本编辑器,直接用execCommand就可以了,虽然不同浏览器对execCommand命令的反应不一样,最后效果是差不多的.当然,如果要严谨的,用像uedi ...

  6. Java BufferImage图片处理(获取宽高、图片截取、转换灰度图)

    Java BufferImage图片处理(获取宽高.截取.转换灰度图) 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Java读取图片为byte[]数组,或者BufferedImage及互相转 ...

  7. Java实现图片裁剪预览功能

    Java实现图片裁剪预览功能 在项目中,我们需要做些类似头像上传,图片裁剪的功能,ok看下面文章! 需要插件:jQuery Jcrop 后端代码: package org.csg.upload;imp ...

  8. android 图片变颜色代码,Android -对图片Drawable进行变色

    Android 图片DrawableCompat利用setTint()对图片Drawable进行变色 1.利用color资源对Drawable变色 Drawable对象的来源不限制,可以是从资源get ...

  9. Java为图片加水印

    Java为图片加水印工具类 一.简介 使用Java在图片上加上水印,可以添加文字.图片 编写一个工具类的代码优化和整理 使用建造者模式提高工具类的可配置性 二.效果图 三.基本参数 // ++++++ ...

最新文章

  1. MurmurHash算法:高运算性能,低碰撞率的hash算法
  2. python消息订阅_python实现发布订阅
  3. netty : websocketx.WebSocketHandshakeException: not a WebSocket handshake request: missing upgrade
  4. PHP学习之六:预定义常量
  5. Android开发之 shape的使用
  6. 利用T-SQL动态定义重复SQL Server数据库表行
  7. android 静态注册wifi广播,Android静态注册广播receiver检测WIFI连接状况变化
  8. ubuntu16.04根目录扩容
  9. LUA脚本语言的简介
  10. 连京东都开始卖翻新机,教你识别手中的iPhone 隐藏id
  11. 美通企业日报 | 网龙互动白板获德国红点设计奖;芬美意在华开设全球最大食用香精厂...
  12. 【GlobalMapper精品教程】006:Excel等表格(.xls)或文本(.txt .csv)坐标文件生成矢量点
  13. java中unicode编码和utf8编码相互转换
  14. ⚡三十分钟⚡小白写了一个坦克大战无敌版(找素材又花了半个小时/尴尬)
  15. 多张图片转换成一个swf文件播放
  16. Clion编辑器的学习与实践之完成stm32F103点亮LED的程序
  17. foxmail卡顿_电脑卡顿不流畅是什么原因
  18. Java高手是如何练成的
  19. 关于SCI-HUB的使用
  20. 水电站生态下泄流量监测系统解决方案

热门文章

  1. MySQL系列11—简单优化
  2. 南京邮电大学嵌入式系统开发实验5:嵌入式Linux下LED报警灯驱动设计及编程
  3. 使用ansible批量修改主机名后/etc/hosts文件不能被正确修改的修复方法
  4. How to debug apps on Kindle Fire on OS X
  5. 给图纸中的光栅对象、外部参照重命名
  6. CSDN日报180521——《如何选择值得深入学习的技术方向》
  7. 解决数据库查询结果过大导致的录制失败问题(loadrunner)
  8. CSS3 盒子设置border和padding不撑开盒子
  9. 杯中悬佳酿,唇齿香气浓
  10. 音乐分享网站(JavaSSH)