기금넷 공식사이트 - 주식 지식 - 긴급 요청: Android RGBA_8888 이미지 데이터를 ImageView에 표시하세요.

긴급 요청: Android RGBA_8888 이미지 데이터를 ImageView에 표시하세요.

특정 픽셀의 색상을 직접 변환: int argb = (rgba amp; 0xFF) lt 24 (rgba gt; gt; 8); 생성된 비트맵(SDK):

/**

* 색상 필터 브러시 초기화

*/

void initFilterPaint() {

페인트 페인트= 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 필터 = new ColorMatrixColorFilter(new ColorMatrix(src));

페인트 .setColorFilter(filter);

this.mFilterPaint = 페인트;

}

/**

* @param iv ImageView to 표시됨

* @param src 픽셀의 1차원 배열 0xrrggbbaa 형식 참조 Bitmap.setPixels 메서드

* @param width 이미지 너비

* @param height 이미지 높이

*/

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

final Paint filterPaint = mFilterPaint;

비트맵 비트맵 = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)

// long uptimeMillis = SystemClock.uptimeMillis(); 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 픽셀 0xrrggbbaa가 있는 비트맵

* /

void filterAndShow(ImageView iv, Bitmap src) {

final Paint filterPaint = mFilterPaint;

비트맵 비트맵 = Bitmap.createBitmap(src.getWidth() , src.getHeight(), src.getConfig());

// long uptimeMillis = SystemClock.uptimeMillis();

Canvas bitmapCanvas = new Canvas(bitmap);

p>

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

iv.setImageBitmap(bitmap)

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

}