最近在做一个需求是从数据库里面取出图片,但是图片都有一个白色的背景,于是项目组希望可以将图片的白色的背景去掉

如图所示:

---------->

当然在这个上面是看不出来的,其实第一张图片是有一个白色的背景的,但是第二张图片没有,相信你理解我说的,那么这个代码我应该如何实现:

package com.wdg.util;import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;import javax.imageio.ImageIO;
import javax.swing.ImageIcon;public class ImageUtil {public static void main(String[] args) {transferAlpha();}public static byte[] transferAlpha() {ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();File file = new File("D:\\08\\11.png");InputStream is;try {is = new FileInputStream(file);// 如果是MultipartFile类型,那么自身也有转换成流的方法:is = file.getInputStream();BufferedImage bi = ImageIO.read(is);Image image = (Image) bi;ImageIcon imageIcon = new ImageIcon(image);BufferedImage bufferedImage = new BufferedImage(imageIcon.getIconWidth(), imageIcon.getIconHeight(),BufferedImage.TYPE_4BYTE_ABGR);Graphics2D g2D = (Graphics2D) bufferedImage.getGraphics();g2D.drawImage(imageIcon.getImage(), 0, 0, imageIcon.getImageObserver());int alpha = 0;for (int j1 = bufferedImage.getMinY(); j1 < bufferedImage.getHeight(); j1++) {for (int j2 = bufferedImage.getMinX(); j2 < bufferedImage.getWidth(); j2++) {int rgb = bufferedImage.getRGB(j2, j1);int R = (rgb & 0xff0000) >> 16;int G = (rgb & 0xff00) >> 8;int B = (rgb & 0xff);if (((255 - R) < 30) && ((255 - G) < 30) && ((255 - B) < 30)) {rgb = ((alpha + 1) << 24) | (rgb & 0x00ffffff);}bufferedImage.setRGB(j2, j1, rgb);}}g2D.drawImage(bufferedImage, 0, 0, imageIcon.getImageObserver());ImageIO.write(bufferedImage, "png", new File("D:\\08\\12.png"));// 直接输出文件} catch (Exception e) {e.printStackTrace();} finally {}return byteArrayOutputStream.toByteArray();}
}

代码是对图片进行操作,复制过去就可以直接实现你的功能了

希望对你有所帮助

java如何对图片去除图片的白色的背景相关推荐

  1. 用java如何进行图片去白色_java如何对图片去除图片的白色的背景

    最近在做一个需求是从数据库里面取出图片,但是图片都有一个白色的背景,于是项目组希望可以将图片的白色的背景去掉 如图所示: ----------> 当然在这个上面是看不出来的,其实第一张图片是有一 ...

  2. java 去掉 时期中的图片,去除图片浅色背景(Java 实现)

    完成与去除图片浅色背景(PIL实现)同样的任务,实现方式为 Java.不同的是,手写实现"加权法"灰度化,在灰度化的同时去除背景. 源码如下: import java.awt.im ...

  3. html内容被背景图片遮住怎么办_定义BODY背景图后,DIV的背景图片显示不全(已解决)...

    你的位置: 问答吧 -> WEB标准 -> 问题详情 定义BODY背景图后,DIV的背景图片显示不全(已解决) 一个有趣的问题,当BODY有背景图片的时候,BODY里的DIV一旦也有背景图 ...

  4. java去除图片水印的解决办法

    原文地址:http://www.oicqzone.com/pc/2017062023844.html [color=red]去除水印: 其实就是把水印的颜色替换为背景色(ARGB) /** * * 分 ...

  5. python去除图片多余的白色边框

    python去除图片多余的白色边框 为了减少图像信息的噪声或者视觉效果,需要去除图片周围的白色边框. 使用matplotlib.pyplot显示和保存没有边框的图片:但是在很多情况下不work: 使用 ...

  6. Java 实现PDF转图片,去除PDF水印,图片转PDF

    1.依赖jar包 <dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian& ...

  7. 基于多元线性回归去除图片水印(Java版)

    前提 采集的图片有淡淡的水印,为了避免不必要的麻烦,需要淡化或去除水印.图片如下所示: Java自带的工具可以对图片指定位置(x,y)的颜色(r,g,b)进行替换.如果图片上下左右颜色一致,则可进行颜 ...

  8. Java使用ffmpeg去除图片水印

    /*** 去除图片水印*/@Testpublic void deleteLogo(){/*** 对delogo滤镜的说明:- x,y:水印的左上方坐标- w,h: 水印的宽高- show: 可选参数, ...

  9. Java如何去除图片上的马赛克

    Java中可以使用图像处理的库,如Java OpenCV或Java ImageJ来去除图片上的马赛克. 具体步骤如下: 使用OpenCV或ImageJ库加载图像. 使用图像处理算法进行降噪处理,以去除 ...

最新文章

  1. 线程间到底共享了哪些进程资源
  2. 计算机主板的工作原理,计算机主板的工作原理.doc
  3. [转]Sublime Text 2 C++编译运行简单配置
  4. 监听程序当前无法识别连接符中请求的服务_[Servlet] 18 监听器
  5. 选择物联网卡平台时需要重点考虑的标准
  6. 阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置
  7. 中控考勤软件sqlserver数据库建立办法
  8. 黑客X档案 2002~2007 NPM、PYPI、DockerHub 备份
  9. 在实现视频播放器的步骤client(三)风行网络电影列表
  10. u盘显示请插磁盘f_U盘插电脑上一直显示请插入磁盘是啥意思 - 卡饭网
  11. matlab 秩和检验,多个独立样本比较的秩和检验(Kruskal-Wallis H)
  12. ADS1292R测量心电+呼吸
  13. 微信小程序服务器和app互通,解读:App 与小程序的互通能力和限制
  14. SpringBoot:认认真真梳理一遍自动装配原理
  15. 将一个文件下的所有的TXT文件内容提取出来合并成一个TXT文件
  16. TamerMonkey 百度直接下载助手
  17. Windows 10自带的磁盘Check工具
  18. 程序员每日英语2021-08-25
  19. 安卓项目各文件夹的含义和用处
  20. python中的堆栈

热门文章

  1. LINUX TOP,不是这样玩地!!!
  2. VS2010在工具栏上创建查找组合框,即:CMFCToolBar中加入CMFCToolBarComboBoxButton
  3. SQL Server中自定义函数和游标应用的经典案例
  4. 3、Java常用关键字
  5. 还不懂spring IOC核心原理?200行代码带你手撸一个
  6. 某程序员吐槽:组里新来一位美女同事,男同事们冲上去大献殷勤,过几天又一哄而散!...
  7. 大厂面试必问的 4 大开源框架,你真会吗?
  8. 收款神器!解读聚合收款码背后的原理|原创
  9. 没想到,他面试竟然挂在了Spring的这个点上...
  10. JSP中EL表达式失效的问题