本文整理匯總了Java中android.graphics.ColorMatrix.setRotate方法的典型用法代碼示例。如果您正苦於以下問題:Java ColorMatrix.setRotate方法的具體用法?Java ColorMatrix.setRotate怎麽用?Java ColorMatrix.setRotate使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類android.graphics.ColorMatrix
的用法示例。
在下文中一共展示了ColorMatrix.setRotate方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: rotateColor
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
private int rotateColor(int color, float rad) {
float deg = rad * 180 / 3.1415927f;
int r = Color.red(color);
int g = Color.green(color);
int b = Color.blue(color);
ColorMatrix cm = new ColorMatrix();
ColorMatrix tmp = new ColorMatrix();
cm.setRGB2YUV();
tmp.setRotate(0, deg);
cm.postConcat(tmp);
tmp.setYUV2RGB();
cm.postConcat(tmp);
final float[] a = cm.getArray();
int ir = floatToByte(a[0] * r + a[1] * g + a[2] * b);
int ig = floatToByte(a[5] * r + a[6] * g + a[7] * b);
int ib = floatToByte(a[10] * r + a[11] * g + a[12] * b);
return Color.argb(Color.alpha(color), pinToByte(ir),
pinToByte(ig), pinToByte(ib));
}
示例2: hue
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
/**
* 色相處理
*
* @param bitmap 原圖
* @param hueValue 新的色相值
* @return 改變了色相值之後的圖片
*/
public static Bitmap hue(Bitmap bitmap, int hueValue) {
// 計算出符合要求的色相值
float newHueValue = (hueValue - 127) * 1.0F / 127 * 180;
// 創建一個顏色矩陣
ColorMatrix hueColorMatrix = new ColorMatrix();
// 控製讓紅色區在色輪上旋轉的角度
hueColorMatrix.setRotate(0, newHueValue);
// 控製讓綠紅色區在色輪上旋轉的角度
hueColorMatrix.setRotate(1, newHueValue);
// 控製讓藍色區在色輪上旋轉的角度
hueColorMatrix.setRotate(2, newHueValue);
// 創建一個畫筆並設置其顏色過濾器
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(hueColorMatrix));
// 創建一個新的圖片並創建畫布
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
// 將原圖使用給定的畫筆畫到畫布上
canvas.drawBitmap(bitmap, 0, 0, paint);
return newBitmap;
}
示例3: hue
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
/**
* 色相處理
*
* @param bitmap 原圖
* @param hueValue 新的色相值
* @return 改變了色相值之後的圖片
*/
public static Bitmap hue(Bitmap bitmap, int hueValue) {
// 計算出符合要求的色相值
float newHueValue = (hueValue - 127) * 1.0F / 127 * 180;
// 創建一個顏色矩陣
ColorMatrix hueColorMatrix = new ColorMatrix();
// 控製讓紅色區在色輪上旋轉的角度
hueColorMatrix.setRotate(0, newHueValue);
// 控製讓綠紅色區在色輪上旋轉的角度
hueColorMatrix.setRotate(1, newHueValue);
// 控製讓藍色區在色輪上旋轉的角度
hueColorMatrix.setRotate(2, newHueValue);
// 創建一個畫筆並設置其顏色過濾器
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(hueColorMatrix));
// 創建一個新的圖片並創建畫布
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
// 將原圖使用給定的畫筆畫到畫布上
canvas.drawBitmap(bitmap, 0, 0, paint);
return newBitmap;
}
示例4: hue
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
/**
* 色相處理
*
* @param bitmap 原圖
* @param hueValue 新的色相值
* @return 改變了色相值之後的圖片
*/
public static Bitmap hue(Bitmap bitmap, int hueValue) {
// 計算出符合要求的色相值
float newHueValue = (hueValue - 127) * 1.0F / 127 * 180;
// 創建一個顏色矩陣
ColorMatrix hueColorMatrix = new ColorMatrix();
// 控製讓紅色區在色輪上旋轉的角度
hueColorMatrix.setRotate(0, newHueValue);
// 控製讓綠紅色區在色輪上旋轉的角度
hueColorMatrix.setRotate(1, newHueValue);
// 控製讓藍色區在色輪上旋轉的角度
hueColorMatrix.setRotate(2, newHueValue);
// 創建一個畫筆並設置其顏色過濾器
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(hueColorMatrix));
// 創建一個新的圖片並創建畫布
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
// 將原圖使用給定的畫筆畫到畫布上
canvas.drawBitmap(bitmap, 0, 0, paint);
return newBitmap;
}
示例5: rotateColor
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
private int rotateColor(int color, float rad) {
float deg = rad * 180 / 3.1415927f;
int r = Color.red(color);
int g = Color.green(color);
int b = Color.blue(color);
ColorMatrix cm = new ColorMatrix();
ColorMatrix tmp = new ColorMatrix();
cm.setRGB2YUV();
tmp.setRotate(0, deg);
cm.postConcat(tmp);
tmp.setYUV2RGB();
cm.postConcat(tmp);
final float[] a = cm.getArray();
int ir = floatToByte(a[0] * r + a[1] * g + a[2] * b);
int ig = floatToByte(a[5] * r + a[6] * g + a[7] * b);
int ib = floatToByte(a[10] * r + a[11] * g + a[12] * b);
return Color.argb(Color.alpha(color), pinToByte(ir), pinToByte(ig),
pinToByte(ib));
}
示例6: handleImageEffect
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
/**
* 調整照片的色調,飽和度,亮度
* MID_VALUE = 177; // 進度條的中間值
* @param bm 原圖
* @param hue 色調 = (進度條進度 - MID_VALUE) * 1.0F / MIN_VALUE * 180
* @param saturation 飽和度 = 進度條進度 * 1.0F / MIN_VALUE;
* @param lum 亮度 = 進度條進度 * 1.0F / MIN_VALUE;
* @return 調整後的圖片
*/
public static Bitmap handleImageEffect(Bitmap bm, int hue, int saturation, int lum) {
Bitmap bitmap = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
ColorMatrix hueMatrix = new ColorMatrix();
hueMatrix.setRotate(0,hue);
hueMatrix.setRotate(1,hue);
hueMatrix.setRotate(2, hue);
ColorMatrix saturationMatrix = new ColorMatrix();
saturationMatrix.setSaturation(saturation);
ColorMatrix lumMatrix = new ColorMatrix();
lumMatrix.setScale(lum,lum,lum,1);
ColorMatrix imageMatrix = new ColorMatrix();
imageMatrix.postConcat(hueMatrix);
imageMatrix.postConcat(saturationMatrix);
imageMatrix.postConcat(lumMatrix);
paint.setColorFilter(new ColorMatrixColorFilter(imageMatrix));
canvas.drawBitmap(bm,0,0,paint);
return bitmap;
}
示例7: rotateColor
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
@SuppressWarnings("unused")
private int rotateColor(int color, float rad) {
float deg = rad * 180 / 3.1415927f;
int r = Color.red(color);
int g = Color.green(color);
int b = Color.blue(color);
ColorMatrix cm = new ColorMatrix();
ColorMatrix tmp = new ColorMatrix();
cm.setRGB2YUV();
tmp.setRotate(0, deg);
cm.postConcat(tmp);
tmp.setYUV2RGB();
cm.postConcat(tmp);
final float[] a = cm.getArray();
int ir = floatToByte(a[0] * r + a[1] * g + a[2] * b);
int ig = floatToByte(a[5] * r + a[6] * g + a[7] * b);
int ib = floatToByte(a[10] * r + a[11] * g + a[12] * b);
return Color.argb(alpha, pinToByte(ir),
pinToByte(ig), pinToByte(ib));
}
示例8: lumAndHueAndSaturation
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
/**
* 亮度、色相、飽和度處理
*
* @param bitmap 原圖
* @param lumValue 亮度值
* @param hueValue 色相值
* @param saturationValue 飽和度值
* @return 亮度、色相、飽和度處理後的圖片
*/
public static Bitmap lumAndHueAndSaturation(Bitmap bitmap, int lumValue,
int hueValue, int saturationValue) {
// 計算出符合要求的飽和度值
float newSaturationValue = saturationValue * 1.0F / 127;
// 計算出符合要求的亮度值
float newlumValue = lumValue * 1.0F / 127;
// 計算出符合要求的色相值
float newHueValue = (hueValue - 127) * 1.0F / 127 * 180;
// 創建一個顏色矩陣並設置其飽和度
ColorMatrix colorMatrix = new ColorMatrix();
// 設置飽和度值
colorMatrix.setSaturation(newSaturationValue);
// 設置亮度值
colorMatrix.setScale(newlumValue, newlumValue, newlumValue, 1);
// 控製讓紅色區在色輪上旋轉的角度
colorMatrix.setRotate(0, newHueValue);
// 控製讓綠紅色區在色輪上旋轉的角度
colorMatrix.setRotate(1, newHueValue);
// 控製讓藍色區在色輪上旋轉的角度
colorMatrix.setRotate(2, newHueValue);
// 創建一個畫筆並設置其顏色過濾器
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
// 創建一個新的圖片並創建畫布
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
// 將原圖使用給定的畫筆畫到畫布上
canvas.drawBitmap(bitmap, 0, 0, paint);
return newBitmap;
}
示例9: handleImageEffect
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
/**
* 顏色效果
*/
public static Bitmap handleImageEffect(Bitmap bm, float hue, float saturation, float lum) {
Bitmap bmp = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
Paint paint = new Paint();
//色調
ColorMatrix hueMatrix = new ColorMatrix();
hueMatrix.setRotate(0, hue); //Red
hueMatrix.setRotate(1, hue); //Green
hueMatrix.setRotate(2, hue); //Blue
//飽和度
ColorMatrix saturationMatrix = new ColorMatrix();
saturationMatrix.setSaturation(saturation);
//亮度
ColorMatrix lumMatrix = new ColorMatrix();
lumMatrix.setScale(lum, lum, lum, 1);
ColorMatrix imageMatrix = new ColorMatrix();
imageMatrix.postConcat(hueMatrix);
imageMatrix.postConcat(saturationMatrix);
imageMatrix.postConcat(lumMatrix);
paint.setColorFilter(new ColorMatrixColorFilter(imageMatrix));
canvas.drawBitmap(bm, 0, 0, paint);
return bmp;
}
示例10: lumAndHueAndSaturation
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
/**
* 亮度、色相、飽和度處理
*
* @param bitmap 原圖
* @param lumValue 亮度值
* @param hueValue 色相值
* @param saturationValue 飽和度值
* @return 亮度、色相、飽和度處理後的圖片
*/
public static Bitmap lumAndHueAndSaturation(Bitmap bitmap, int lumValue,
int hueValue, int saturationValue) {
// 計算出符合要求的飽和度值
float newSaturationValue = saturationValue * 1.0F / 127;
// 計算出符合要求的亮度值
float newlumValue = lumValue * 1.0F / 127;
// 計算出符合要求的色相值
float newHueValue = (hueValue - 127) * 1.0F / 127 * 180;
// 創建一個顏色矩陣並設置其飽和度
ColorMatrix colorMatrix = new ColorMatrix();
// 設置飽和度值
colorMatrix.setSaturation(newSaturationValue);
// 設置亮度值
colorMatrix.setScale(newlumValue, newlumValue, newlumValue, 1);
// 控製讓紅色區在色輪上旋轉的角度
colorMatrix.setRotate(0, newHueValue);
// 控製讓綠紅色區在色輪上旋轉的角度
colorMatrix.setRotate(1, newHueValue);
// 控製讓藍色區在色輪上旋轉的角度
colorMatrix.setRotate(2, newHueValue);
// 創建一個畫筆並設置其顏色過濾器
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
// 創建一個新的圖片並創建畫布
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
// 將原圖使用給定的畫筆畫到畫布上
canvas.drawBitmap(bitmap, 0, 0, paint);
return newBitmap;
}
示例11: lumAndHueAndSaturation
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
/**
* 亮度、色相、飽和度處理
*
* @param bitmap 原圖
* @param lumValue 亮度值
* @param hueValue 色相值
* @param saturationValue 飽和度值
* @return 亮度、色相、飽和度處理後的圖片
*/
public static Bitmap lumAndHueAndSaturation(Bitmap bitmap, int lumValue, int hueValue, int saturationValue) {
// 計算出符合要求的飽和度值
float newSaturationValue = saturationValue * 1.0F / 127;
// 計算出符合要求的亮度值
float newlumValue = lumValue * 1.0F / 127;
// 計算出符合要求的色相值
float newHueValue = (hueValue - 127) * 1.0F / 127 * 180;
// 創建一個顏色矩陣並設置其飽和度
ColorMatrix colorMatrix = new ColorMatrix();
// 設置飽和度值
colorMatrix.setSaturation(newSaturationValue);
// 設置亮度值
colorMatrix.setScale(newlumValue, newlumValue, newlumValue, 1);
// 控製讓紅色區在色輪上旋轉的角度
colorMatrix.setRotate(0, newHueValue);
// 控製讓綠紅色區在色輪上旋轉的角度
colorMatrix.setRotate(1, newHueValue);
// 控製讓藍色區在色輪上旋轉的角度
colorMatrix.setRotate(2, newHueValue);
// 創建一個畫筆並設置其顏色過濾器
Paint paint = new Paint();
paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
// 創建一個新的圖片並創建畫布
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
// 將原圖使用給定的畫筆畫到畫布上
canvas.drawBitmap(bitmap, 0, 0, paint);
return newBitmap;
}
示例12: handleImageMatrix
import android.graphics.ColorMatrix; //導入方法依賴的package包/類
/**
* 根據具體給定的bitmap,色調 飽和度及亮度生成新的bitmap
*
* @param tone 色調
* @param saturation 飽和度
* @param lum 亮度
* @return new bitmap
*/
public static Bitmap handleImageMatrix(Bitmap bm, float tone, float saturation, float lum) {
Bitmap bitmap = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
// 色調
ColorMatrix toneMatrix = new ColorMatrix();
toneMatrix.setRotate(0, tone);
toneMatrix.setRotate(1, tone);
toneMatrix.setRotate(2, tone);
// 飽和度
ColorMatrix saturationMatrix = new ColorMatrix();
saturationMatrix.setSaturation(saturation);
// 亮度
ColorMatrix lumMatrix = new ColorMatrix();
lumMatrix.setScale(lum, lum, lum, 1);
ColorMatrix imageMatrix = new ColorMatrix();
imageMatrix.postConcat(toneMatrix);
imageMatrix.postConcat(saturationMatrix);
imageMatrix.postConcat(lumMatrix);
paint.setColorFilter(new ColorMatrixColorFilter(imageMatrix));
canvas.drawBitmap(bm, 0, 0, paint);
return bitmap;
}