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利用Redis实现消息队列的示例代码

    Java利用Redis实现消息队列的示例代码

    本篇文章主要介绍了Java利用Redis实现消息队列的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • SpringBoot实用小技巧之如何动态设置日志级别

    SpringBoot实用小技巧之如何动态设置日志级别

    这篇文章主要给大家介绍了关于SpringBoot实用小技巧之如何动态设置日志级别的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SpringBoot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • @Configuration与@Component作为配置类的区别详解

    @Configuration与@Component作为配置类的区别详解

    这篇文章主要介绍了@Configuration与@Component作为配置类的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Java实战之在线寄查快递系统的实现

    Java实战之在线寄查快递系统的实现

    这篇文章主要介绍了如何利用Java制作一个在线寄查快递系统,文中采用的技术有java、SpringBoot、FreeMarker、Mysql,需要的可以参考一下
    2022-02-02
  • Java实现矩阵加减乘除及转制等运算功能示例

    Java实现矩阵加减乘除及转制等运算功能示例

    这篇文章主要介绍了Java实现矩阵加减乘除及转制等运算功能,结合实例形式总结分析了java常见的矩阵运算实现技巧,需要的朋友可以参考下
    2018-01-01
  • 如何利用SpringAOP的返回通知处理数据加密返回

    如何利用SpringAOP的返回通知处理数据加密返回

    这篇文章主要介绍了如何利用SpringAOP的返回通知处理数据加密返回,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-12-12
  • 了解java中的session

    了解java中的session

    这篇文章主要介绍了了解java中的session的相关问题,什么是session,session怎么用等,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot配置ShedLock分布式定时任务

    SpringBoot配置ShedLock分布式定时任务

    ShedLock是一个在分布式环境中使用的定时任务框架,这篇文章主要介绍了SpringBoot配置ShedLock分布式定时任务,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • Spring MVC 请求映射路径的配置实现前后端交互

    Spring MVC 请求映射路径的配置实现前后端交互

    在Spring MVC中,请求映射路径是指与特定的请求处理方法关联的URL路径,这篇文章主要介绍了Spring MVC 请求映射路径的配置,实现前后端交互,需要的朋友可以参考下
    2023-09-09
  • 关于MVC与SpringMVC的介绍、区别、执行流程

    关于MVC与SpringMVC的介绍、区别、执行流程

    这篇文章主要介绍了关于MVC与SpringMVC的介绍、区别、执行流程,MVC框架的主要目标是将应用程序的业务逻辑(Model)与用户界面(View)分离开来,从而提高应用程序的可维护性和可扩展性,需要的朋友可以参考下
    2023-05-05

最新评论