对Java图片处理的内容涉猎不深,言辞简陋望请见谅。
java实现色阶调整,即调整图片rgb分量,进而也可以调节图片亮度。
测试代码
public static void main(String[] args) { //文件与BufferedImage间的转换 BufferedImage bi=file2img("test.jpg"); //读取图片 BufferedImage bii=img_color_gradation(bi,100,0,0); img2file(bii,"jpg","test1.jpg"); //生成图片 }
色阶调整代码
//图片色阶调整,调整rgb的分量 public static BufferedImage img_color_gradation(BufferedImage imgsrc, int r, int g, int b) { try { //创建一个不带透明度的图片 BufferedImage back=new BufferedImage(imgsrc.getWidth(), imgsrc.getHeight(),BufferedImage.TYPE_INT_RGB); int width = imgsrc.getWidth(); int height = imgsrc.getHeight(); 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); int red= color.getRed()+r; if(red>255) red=255; if(red<0) red=0; int green= color.getGreen()+g; if(green>255) green=255; if(green<0) green=0; int blue= color.getBlue()+b; if(blue>255) blue=255; if(blue<0) blue=0; 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(); } }
分享:
下面先给出亮度和对比度的计算公式
(RGB表示原图的色彩分量的值,nRGB表不处理后的值,mBrightness表示调整的亮度值,mContrast表示调整的对比度值,avg表示整个图像像素的平均值)
亮度:nRGB=RGB+mBrightness
对比度:nRGB=(RGB-avg)*(1-percent%)+avg percent%取值范围为(-1~1) 0为原始值
对比度公式也很好证明,将其展开
nRGB=RGB-RGB*percent%-avg+avg*percent%+avg
nRGB=RGB-RGB*percent%+avg*percent%
对于整个图像矩阵来说,要保证亮度不变,即整个矩阵的代数和不变。
而avg=(RGB1+RGB2+....RGBn)/n (1)
(nRGB1+nRGB2+.....nRGBn)=(RGB1+RGB2+...RGBn)+n*avg*percent%-(RGB1+RGB2+...RGBn)*percent% (2)
将(1)式代入(2)式即可
忍者必须死34399账号登录版 最新版v1.0.138v2.0.72
下载勇者秘境oppo版 安卓版v1.0.5
下载忍者必须死3一加版 最新版v1.0.138v2.0.72
下载绝世仙王官方正版 最新安卓版v1.0.49
下载Goat Simulator 3手机版 安卓版v1.0.8.2
Goat Simulator 3手机版是一个非常有趣的模拟游
Goat Simulator 3国际服 安卓版v1.0.8.2
Goat Simulator 3国际版是一个非常有趣的山羊模
烟花燃放模拟器中文版 2025最新版v1.0
烟花燃放模拟器是款仿真的烟花绽放模拟器类型单机小游戏,全方位
我的世界动漫世界 手机版v友y整合
我的世界动漫世界模组整合包是一款加入了动漫元素的素材整合包,
我的世界贝爷生存整合包 最新版v隔壁老王
我的世界MITE贝爷生存整合包是一款根据原版MC制作的魔改整