/**
* 調(diào)節(jié)圖像明暗的方法,start和 end 的值 在0-255之間,
* 比如,0-16就會(huì)讓圖像變得很暗,0-255保持不變
*/
public static Image lightenessRGB(Image image, int start, int end) {
??? // System.out.println("reverseRGB IN");
??? int width = image.getWidth();
??? int height = image.getHeight();
??? // 獲得圖像的ARGB數(shù)據(jù),存儲(chǔ)在rawInt里
??? int[] raw = null;
??? try {
??????? raw = new int[width * height];
??????? image.getRGB(raw, 0, width, 0, 0, width, height);
??????? int len = raw.length;
??????? // 開(kāi)始循環(huán),獲得圖像里每個(gè)像素的顏色,然后處理
??????? for (int i = 0; i < len; i++) {
??????????? // 獲得像素的顏色
??????????? int color = raw[i];
??????????? // System.out.println(Integer.toHexString(color));
??????????? // 獲得alpha
??????????? int alpha = 0xFF;
??????????? // System.out.println(Integer.toHexString(alpha));
??????????? // 獲得紅色
??????????? int red = (color & 0x00FF0000) >> 16;
??????????? // System.out.println(Integer.toHexString(red));
??????????? // 獲得綠色
??????????? int green = (color & 0x0000FF00) >> 8;
??????????? // System.out.println(Integer.toHexString(green));
??????????? // 獲得藍(lán)色
??????????? int blue = (color & 0x000000FF);
??????????? // System.out.println(Integer.toHexString(blue));
??????????? // 網(wǎng)上找到的算法
??????????? // 生成新顏色
??????????? red = start + end * red / 255;
??????????? green = start + end * green / 255;
??????????? blue = start + end * blue / 255;
??????????? // 生成新顏色
??????????? // System.out.println(Integer.toHexString((alpha << 24)+ (red <<
??????????? // 16)+(green <<
));
??????????? color = (alpha << 24) + (red << 16) + (green <<
+ blue;
??????????? raw[i] = color;
??????? }
??????? // System.out.println("blendRGB OUT");
??????? return Image.createRGBImage(raw, width, height, true);
??? } catch (Error e) {
??????? // e.printStackTrace();
??????? ImageAlbum.showAlert("圖像尺寸太大,不能完成此操作.");
??????? return image;
??? } catch (Exception e) {
??????? e.printStackTrace();
??????? return image;
??? } finally {
??????? raw = null;
??? }
}
* 調(diào)節(jié)圖像明暗的方法,start和 end 的值 在0-255之間,
* 比如,0-16就會(huì)讓圖像變得很暗,0-255保持不變
*/
public static Image lightenessRGB(Image image, int start, int end) {
??? // System.out.println("reverseRGB IN");
??? int width = image.getWidth();
??? int height = image.getHeight();
??? // 獲得圖像的ARGB數(shù)據(jù),存儲(chǔ)在rawInt里
??? int[] raw = null;
??? try {
??????? raw = new int[width * height];
??????? image.getRGB(raw, 0, width, 0, 0, width, height);
??????? int len = raw.length;
??????? // 開(kāi)始循環(huán),獲得圖像里每個(gè)像素的顏色,然后處理
??????? for (int i = 0; i < len; i++) {
??????????? // 獲得像素的顏色
??????????? int color = raw[i];
??????????? // System.out.println(Integer.toHexString(color));
??????????? // 獲得alpha
??????????? int alpha = 0xFF;
??????????? // System.out.println(Integer.toHexString(alpha));
??????????? // 獲得紅色
??????????? int red = (color & 0x00FF0000) >> 16;
??????????? // System.out.println(Integer.toHexString(red));
??????????? // 獲得綠色
??????????? int green = (color & 0x0000FF00) >> 8;
??????????? // System.out.println(Integer.toHexString(green));
??????????? // 獲得藍(lán)色
??????????? int blue = (color & 0x000000FF);
??????????? // System.out.println(Integer.toHexString(blue));
??????????? // 網(wǎng)上找到的算法
??????????? // 生成新顏色
??????????? red = start + end * red / 255;
??????????? green = start + end * green / 255;
??????????? blue = start + end * blue / 255;
??????????? // 生成新顏色
??????????? // System.out.println(Integer.toHexString((alpha << 24)+ (red <<
??????????? // 16)+(green <<

??????????? color = (alpha << 24) + (red << 16) + (green <<

??????????? raw[i] = color;
??????? }
??????? // System.out.println("blendRGB OUT");
??????? return Image.createRGBImage(raw, width, height, true);
??? } catch (Error e) {
??????? // e.printStackTrace();
??????? ImageAlbum.showAlert("圖像尺寸太大,不能完成此操作.");
??????? return image;
??? } catch (Exception e) {
??????? e.printStackTrace();
??????? return image;
??? } finally {
??????? raw = null;
??? }
}
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
