首页 > 编程语言 >Java图像二值化,并裁去白边

Java图像二值化,并裁去白边

时间:2023-05-23 17:13:28浏览次数:44  
标签:并裁 Java binaryImage java image BufferedImage import 二值化

手写签名场景,为更符合签名效果,节省服务器存储空间,将原图二值化后,再将多于空白去裁去。

java中图像二值化有个小技巧,能够很方便将图像二值化,不用再重费心思去研究二值化过程,技巧在这个参数BufferedImage.TYPE_BYTE_BINARY

 

 1 package com.test;
 2 
 3 import java.awt.Color;
 4 import java.awt.image.BufferedImage;
 5 import java.io.File;
 6 import java.io.IOException;
 7 
 8 import javax.imageio.ImageIO;
 9 
10 public class ImageBinaryUtil {
11 
12     public static void binaryImage(String source,String target) {
13         try {
14             BufferedImage image = ImageIO.read(new File(source));
15             int width = image.getWidth();
16             int height = image.getHeight();
17             // 重点,技巧在这个参数BufferedImage.TYPE_BYTE_BINARY
18             BufferedImage binaryImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_BINARY);
19             for (int y = 0; y < height; y++) {
20                 for (int x = 0; x < width; x++) {
21                     int rgb = image.getRGB(x, y);
22                     binaryImage.setRGB(x, y, rgb);
23                 }
24                 
25             }
26             ImageIO.write(binaryImage, "jpg", new File(target));
27         } catch (IOException e) {
28             e.printStackTrace();
29         }
30     }
31 
32     public static void main(String[] args) throws IOException {
33         long l = System.currentTimeMillis();
34         String source = "C:\\Users\\user\\Desktop\\1.jpg";
35         String target = "C:\\Users\\user\\Desktop\\1二3.jpg";
36         binaryImage(source, target);;
37         System.out.println(System.currentTimeMillis() - l);
38     }
39 }

原图:

处理后:

 

标签:并裁,Java,binaryImage,java,image,BufferedImage,import,二值化
From: https://www.cnblogs.com/liudksir/p/17425784.html

相关文章

  • 【Java Web】MultipartFile和byte[]互转
    接口接收文件@RequestParam("file")MultipartFilefileMultipartFile转byte[]Stringname=file.getName();StringoriginalFilename=file.getOriginalFilename();StringcontentType=file.getContentType();Stringbytes=file.getBytes();byte[]转Multipar......
  • javascript中的错误类型
    javascript中的错误类型:SyntaxErrorTypeErrorReferenceErrorRangeErrorURLErrorErrorSyntaxError语法错误//当您在编写一个函数时忘记了括号,)来括起您的代码,您将收到一个SyntaxError错误functionsay(text){returntext;}say('shark';//outputUncaug......
  • java.sql.SQLException: Access denied for user 'root'@'localhost' (using password
    org.apache.ibatis.exceptions.PersistenceException:###Errorqueryingdatabase.Cause:java.sql.SQLException:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)###Theerrormayexistincom/itheima/mapper/BrandMapper.j......
  • org.springframework.data.annotation.Transient 和 javax.persistence.Transient 的
    1、org.springframework.data.annotation.Transient 和 javax.persistence.Transient 都是用于标记一个属性不需要被持久化到数据库中的注解。它们的区别在于它们所处的框架和使用场景。org.springframework.data.annotation.Transient 是SpringDataJPA框架提供的注解,用......
  • java入门
    java简介:1.什么是程序:程序通常指完成某些事情的一种既定方式和过程;(方式){细节1;细节2;细节3}(过程){第一步;第二步;第三步}2.java的产生:1995年诞生。java之父高斯林3.java的发展史:java诞生于1995年。java目前在企业开发过程中,使用和占有率最高的是jdk1.84.java的技术平台:java技术平......
  • java 给实体类赋默认值通用方法
    importjava.lang.reflect.Field;importjava.lang.reflect.Modifier;importjava.math.BigDecimal;importjava.sql.Date;importjava.sql.Timestamp;importjava.util.ArrayList;importjava.util.List;/***使用反射给实体类k赋值(默认值)*insertupdate会报null......
  • java中运行指令浅析
    后续业务可能需要在程序中运行指令,所以这里简单探究了一下,分别从win和linux两个平台进行研究,又以为java是跨平台语言,可能二者之间的区别应该只是返回内容与输入指令的不同.(还不是在win上开发)1.如何使用Runtime.getRuntime().exec("notepad");RuntimeUtil.exec(......
  • Java 局部变量
     局部变量声明在方法、构造方法或者语句块中。局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁。局部变量必须在使用前声明,并且不能被访问修饰符修饰,因为它们的作用域已经被限制在了声明它们的方法、代码块或构造函数中。局部变量只在......
  • JavaScript正则获取a标签中的path路径值-流程引擎-计算引擎
    直接上代码://获取附件中的链接地址functionget_file_path_from_encode_value(x){vararrLink=[];x.replace(/<a[^>]*path=['"]([^'"]+)[^>]*/gi,function(match,capture){arr......
  • 关于AI与api-Java接口的区别应用点
    AI和API是目前互联网技术中的两个趋势,它们在许多领域都发挥了重要作用。在技术的领域中,AI代表的是人工智能,而API代表的是应用程序接口。在本文中,将讨论AI和API的详细分析。AI是人工智能的简称,是指通过计算机技术模拟人类智能的一种技术体系。AI可以学习数据并自我改进,以达到更好的......