Java 手写签字去除背景 背景透明「建议收藏」

Java 手写签字去除背景 背景透明「建议收藏」Java 手写签字去除背景 背景透明/** * 白底照片去除白底 形成透明底图片 * @param file 需要去除背景的图片 * @param Path 去除背景后保存图片的路径 * @return true 则去除成功 ,false 则失败 */public static boolean localImgToAlpha(File file, String Path) { try { BufferedImage bi = ImageIO.read(new F


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Java 手写签字去除背景 背景透明

在这里插入图片描述

/**
 * 白底照片去除白底 形成透明底图片
 * @param file  需要去除背景的图片
 * @param Path  去除背景后保存图片的路径
 * @return  true 则去除成功 ,false 则失败
 */
public static boolean localImgToAlpha(File file, String Path) {
    try {
        BufferedImage bi = ImageIO.read(new FileInputStream(file));
        ImageIcon imageIcon = new ImageIcon(bi);
        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(Path));// 直接输出文件
        return true;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

转载链接: [link]https://blog.csdn.net/weixin_44912855/article/details/111551807

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171149.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Java–链表ListNode

    今天我们来介绍一下Java中的链表,作者依旧尽量用白话解释,希望能帮到大家链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。上面是链表的定义,那么我们用通俗点的语言…

    2022年4月6日
  • 一款完整的多用户微信公众平台开发源码,带文档免费分享「建议收藏」

    一款完整的多用户微信公众平台开发源码,带文档免费分享「建议收藏」一款集前端展示+用户中心+商家管理系统合三为一的商业强大平台。前端分为首页、产品介绍、注册用户、秒杀、成功案例、联系我们六大模块。

    2022年10月22日
  • 最良心的csgo开箱网站_csgo靠谱交易平台

    最良心的csgo开箱网站_csgo靠谱交易平台2021csgo网页开箱网站有哪些?csgo靠谱的开箱网站大全官网直达链接优惠码/推广码网站状态incsgocsgogo直接取回skinsdogcsgogo直接取回88skinscsgo直接取回skskinscsgogo直接取回npskinscsgogo直接取回fateskinscsgo直接取回yskins暂无可取回coolkaixiangcsgo直接取回piggycasecsgogo可取回bo

    2022年10月6日
  • GT911单片机驱动程序[通俗易懂]

    GT911单片机驱动程序[通俗易懂]GT911手册及驱动程序(安卓、MTK).rar-嵌入式文档类资源-CSDN下载https://download.csdn.net/download/qasxc78563/15117948参考:STM32F103驱动GT911-DarkBright-博客园https://www.cnblogs.com/DarkBright/p/10730346.htmlGT911与主机接口共有6PIN,分别为:VDD、GND、SCL、SDA、INT、RESET。这里用P11做中断脚,P13做复位

    2022年6月29日
  • pycharm把py文件改为exe文件_怎么把python程序打包成可执行文件

    pycharm把py文件改为exe文件_怎么把python程序打包成可执行文件1.安装pyinstraller工具2.在PyCharm最下方找到终端,在终端输入pyinstaller-F–onefilexxx.py

    2022年8月26日
  • js全局替换回车换行符

    js全局替换回车换行符踩了个坑,记录一下。全局换行符是这样用php加上的因为显示的时候需要换行显示但是保存的时候不能把回车换行符保存进数据库呀,所以在保存之前要再次把回车换行符替换没了,发现用js替换\r\n无效,思考了一下,可能是html显示是自动过滤了\r,而以\n来显示吧。于是把替换代码改成:varemialStr=$(“#mail”).val();emialStr=emialStr.r

    2022年5月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号