欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2021-06-25 09:27:39|栏目: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 Socket实现多线程通信功能示例

栏    目:JAVA代码

下一篇:Java 如何实现一个http服务器

本文标题:java图片对比度调整示例代码

本文地址:http://www.codeinn.net/misctech/147801.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有