日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 对比度,java批改图片亮度对比度

發布時間:2024/9/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 对比度,java批改图片亮度对比度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java修改圖片亮度對比度

我參考了這個博客

http://blog.csdn.net/jia20003/article/details/7385160

以下是我根據這個編的代碼

public?static?int?clamp(int?value)

{

return?value?>?255???255?:(value?

}

public??static?BufferedImage?greyFilter(BufferedImage?src)

{

//獲得源圖片長度和寬度

int?width=src.getWidth();

int?height=src.getHeight();

BufferedImage?dest=new?BufferedImage(width,height,src.getType());

int[]?inPixels=new?int[width*height];

int[]?outPixels=new?int[width*height];

src.getRGB(0,0,width,height,inPixels,0,width);

//計算一個像素的紅,綠,藍方法

int?index=0;

int[]?rgbmeans=new?int[3];

double?redSum=0,greenSum=0,blueSum=0;

double?total=height*width;

for(int?row=0;row

{

int?ta=0,tr=0,tg=0,tb=0;

for(int?col=0;col

{

index=row*width+col;

ta=(inPixels[index]?>>?24)?&?0xff;

tr=(inPixels[index]?>>?16)?&?0xff;

tg=(inPixels[index]?>>?8)?&?0xff;

tb=inPixels[index]?&?0xff;

redSum+=tr;

greenSum+=tg;

blueSum+=tb;

}

}

//求出圖像像素平均值

rgbmeans[0]=(int)(redSum/total);

rgbmeans[1]=(int)(greenSum/total);

rgbmeans[2]=(int)(blueSum/total);

//調整對比度,亮度

for(int?row=0;row

{

int?ta=0,tr=0,tg=0,tb=0;

for(int?col=0;col

{

ta=(inPixels[index]?>>?24)?&?0xff;

tr=(inPixels[index]?>>?16)?&?0xff;

tg=(inPixels[index]?>>?8)?&?0xff;

tb=inPixels[index]?&?0xff;

//移去平均值

tr?-=rgbmeans[0];

tg?-=rgbmeans[1];

tb?-=rgbmeans[2];

//調整對比度

tr=(int)(tr?*?contrast);

tg=(int)(tg?*?contrast);

tb=(int)(tb?*?contrast);

//調整亮度

tr=(int)((tr+rgbmeans[0])*brightness);

tg=(int)((tg+rgbmeans[1])*brightness);

tb=(int)((tb+rgbmeans[2])*brightness);?//end;

/*tr?+=(int)(rgbmeans[0]?*?brightness);

tg?+=(int)(rgbmeans[1]?*?brightness);

tb?+=(int)(rgbmeans[2]?*?brightness);??//end;*/

outPixels[index]?=?(ta?<

}

}

dest.setRGB(0,?0,?width,?height,?outPixels,?0,?width);

return?dest;

}

運行結果是純黑色,感覺失敗了,求教高手

Java?SE

分享到:

------解決方案--------------------

rgbmeans[0]=(int)(redSum/total);

rgbmeans[1]=(int)(greenSum/total);

rgbmeans[2]=(int)(blueSum/total);

輸出平均值看看。。

另外你

for(int?row=0;row>?24)?&?0xff;?????????????????tr=(inPixels[index]?>>?16)?&?0xff;?????????????????tg=(inPixels[index]?>>?8)?&?0xff;?????????????????tb=inPixels[index]?&?0xff;?????????????????redSum+=tr;?????????????????greenSum+=tg;?????????????????blueSum+=tb;?????????????}?????????}

這里沒有對index進行操作,那么index一直為0?

總結

以上是生活随笔為你收集整理的java 对比度,java批改图片亮度对比度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。