当前位置 - 股票行情交易網 - 財經資訊 - 急求 安卓RGBA_8888圖像數據顯示到ImageView

急求 安卓RGBA_8888圖像數據顯示到ImageView

直接轉換某壹像素點的顏色:int argb = (rgba & 0xFF) << 24 | (rgba >>> 8);

轉換已生成的Bitmap(SDK):

/**

* 初始化顏色過濾畫筆

*/

void initFilterPaint() {

Paint paint= new Paint();

float[] src = {

0, 0, 0, 1, 0, //R' = 0*R + 0*G + 0*B + 1*A + 0;

1, 0, 0, 0, 0, //G' = 1*R + 0*G + 0*B + 0*A + 0;

0, 1, 0, 0, 0, //B' = 0*R + 1*G + 0*B + 0*A + 0;

0, 0, 1, 0, 0 };//A' = 0*R + 0*G + 1*B + 0*A + 0;

ColorFilter filter = new ColorMatrixColorFilter(new ColorMatrix(src));

paint.setColorFilter(filter);

this.mFilterPaint = paint;

}

/**

* @param iv 要呈現的ImageView

* @param src 像素壹維數組 0xrrggbbaa 格式參考Bitmap.setPixels方法

* @param width 圖片寬

* @param height 圖片高

*/

void filterArrayAndShow(ImageView iv,int[] src,int width,int height) {

final Paint filterPaint = mFilterPaint;

Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

// long uptimeMillis = SystemClock.uptimeMillis();

Canvas bitmapCanvas = new Canvas(bitmap);

bitmapCanvas.drawBitmap(src, 0, width, 0, 0, width, height, true, filterPaint);

iv.setImageBitmap(bitmap);

// System.out.println(SystemClock.uptimeMillis() - uptimeMillis);

}

/**

* @param iv 要呈現的ImageView

* @param src pixel為0xrrggbbaa的Bitmap

*/

void filterAndShow(ImageView iv, Bitmap src) {

final Paint filterPaint = mFilterPaint;

Bitmap bitmap = Bitmap.createBitmap(src.getWidth(), src.getHeight(), src.getConfig());

// long uptimeMillis = SystemClock.uptimeMillis();

Canvas bitmapCanvas = new Canvas(bitmap);

bitmapCanvas.drawBitmap(src, 0, 0, filterPaint);

iv.setImageBitmap(bitmap);

// System.out.println(SystemClock.uptimeMillis() - uptimeMillis);

}