java图片对比度调整示例代码

 更新时间:2019年07月10日 09:58:50   作者:数据架构师  
这篇文章主要给大家介绍了关于java图片对比度调整的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

本文主要给大家介绍了关于java图片对比度调整的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

方法如下

测试代码

 public static void main(String[] args) {

  //文件与BufferedImage间的转换
  BufferedImage bi=file2img("test.jpg"); //读取图片
  BufferedImage bii=img_color_contrast(bi,100);
  img2file(bii,"jpg","test1.jpg"); //生成图片

 }

图片对比度调整代码

//图片对比度调整
 public static BufferedImage img_color_contrast(BufferedImage imgsrc, int contrast) {
  try {
   int contrast_average = 128;
   //创建一个不带透明度的图片
   BufferedImage back=new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(),BufferedImage.TYPE_INT_RGB);
   int width = imgsrc.getWidth(); 
   int height = imgsrc.getHeight(); 
   int pix;
   for (int i = 0; i < height; i++) { 
    for (int j = 0; j < width; j++) { 
     int pixel = imgsrc.getRGB(j, i); 
     Color color = new Color(pixel);

     if (color.getRed() < contrast_average)
     {
      pix = color.getRed()- Math.abs(contrast);
      if (pix < 0) pix = 0;
     }
     else
     {
      pix = color.getRed() + Math.abs(contrast);
      if (pix > 255) pix = 255;
     }
     int red= pix;
     if (color.getGreen() < contrast_average)
     {
      pix = color.getGreen()- Math.abs(contrast);
      if (pix < 0) pix = 0;
     }
     else
     {
      pix = color.getGreen() + Math.abs(contrast);
      if (pix > 255) pix = 255;
     }
     int green= pix; 
     if (color.getBlue() < contrast_average)
     {
      pix = color.getBlue()- Math.abs(contrast);
      if (pix < 0) pix = 0;
     }
     else
     {
      pix = color.getBlue() + Math.abs(contrast);
      if (pix > 255) pix = 255;
     }
     int blue= pix; 

     color = new Color(red,green,blue);
     int x=color.getRGB();
     back.setRGB(j,i,x);
    }
   }
   return back;
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  }
 }

图片读取,和存储函数

//读取图片
 public static BufferedImage file2img(String imgpath) {
  try {
   BufferedImage bufferedImage=ImageIO.read(new File(imgpath));
   return bufferedImage;
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  }
 }
 //保存图片,extent为格式,"jpg"、"png"等
 public static void img2file(BufferedImage img,String extent,String newfile) {
  try {
   ImageIO.write(img, extent, new File(newfile));
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • Java中Servlet的生命周期

    Java中Servlet的生命周期

    这篇文章主要介绍了Java中Servlet的生命周期,Servlet 初始化后调用 init () 方法、Servlet 调用 service() 方法来处理客户端的请求、Servlet 销毁前调用 destroy() 方法,下面来看看具体的解析吧,需要的小伙伴可以参考一下
    2022-01-01
  • Struts2中图片以base64方式上传至数据库

    Struts2中图片以base64方式上传至数据库

    这篇文章主要介绍了Struts2中图片以base64方式上传至数据库的实现代码,代码分为前台和后台两段,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Java执行SQL脚本文件到数据库详解

    Java执行SQL脚本文件到数据库详解

    这篇文章主要为大家详细介绍了Java执行SQL脚本文件到数据库的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • java搜索无向图中两点之间所有路径的算法

    java搜索无向图中两点之间所有路径的算法

    这篇文章主要介绍了java搜索无向图中两点之间所有路径的算法
    2019-01-01
  • SpringBoot整合Swagger接口文档工具的流程步骤

    SpringBoot整合Swagger接口文档工具的流程步骤

    我们在开发接口的时候,会将接口文档给前端的开发者进行对接,我们可以通过Postman或者Yapi等接口管理工具进行编写管理,实际开发中,接口的管理确实也应该通过专业的工具管理,本文,我们就来谈谈怎么在SpringBoot整合Swagger接口文档工具
    2023-08-08
  • java实现左旋转字符串

    java实现左旋转字符串

    这篇文章主要为大家详细介绍了java实现左旋转字符串,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Java中的LinkedHashMap源码分析

    Java中的LinkedHashMap源码分析

    这篇文章主要介绍了Java中的LinkedHashMap源码分析,LinkedHashMap是HashMap的子类,所以基本的操作与hashmap类似,不过呢,在插入、删除、替换key-value对的时候,需要的朋友可以参考下
    2023-12-12
  • Spring和MyBatis整合自动生成代码里面text类型遇到的坑

    Spring和MyBatis整合自动生成代码里面text类型遇到的坑

    Spring和MyBatis整合以后,使用自动生成代码工具生成dao和mapper配置文件。下面通过本文给大家介绍Spring和MyBatis整合自动生成代码里面text类型遇到的坑,需要的朋友参考下吧
    2018-01-01
  • Java this关键字的使用详解

    Java this关键字的使用详解

    this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用
    2021-11-11
  • Java 实战交易平台项目之宠物在线商城系统

    Java 实战交易平台项目之宠物在线商城系统

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java实现一个宠物在线商城系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11

最新评论