마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 비트맵 이미지 영역부분 RGB 좌표출력 후 색상 변환

0 추천

얼굴 이미지에서 제가 흰색으로 표시해둔 부분 RGB 값과 x,y 축을 다구했습니다

 

만약 예를 들어  사진에 스페이스는 끝나느 지점입니다

 

      흰색,흰색     검정검정    흰색흰색

흰색흰색 검정검정 검정검정  흰색흰색

     흰색흰색  흰색흰색  흰색흰색 

             흰색흰색 흰색흰색

 

이상태에서 검정인부분을 다른색으로 바꿔주고싶습니다.

소스코드 첨부하겠습니다 한번 봐주세요

package com.example.abcdefg;

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		final Bitmap bitMapImage = BitmapFactory.decodeFile(Environment
				.getExternalStorageDirectory() + "/" + "mulan0637.bmp");
		// BufferedImage =
		final int[][] pixels = new int[bitMapImage.getHeight()][bitMapImage
				.getWidth()];
		ImageView img = (ImageView) findViewById(R.id.imageView1);
		final TextView txtView = (TextView) findViewById(R.id.textView1);
		img.setImageBitmap(bitMapImage);
		Button btn1 = (Button) findViewById(R.id.button1);
		btn1.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				for (int i = 0; i < bitMapImage.getHeight(); i++) {
					for (int j = 0; j < bitMapImage.getWidth(); j++) {
						pixels[i][j] = bitMapImage.getPixel(j, i);
						// int h =bitMapImage.getPixel(j, i);

						int bWhite = bitMapImage.getPixel(j, i) & 0x000000;

						int bValue = bitMapImage.getPixel(j, i) & 0x000000FF;

						int gValue = (bitMapImage.getPixel(j, i) & 0x0000FF00) >> 8;
						int rValue = (bitMapImage.getPixel(j, i) & 0x00FF0000) >> 16;
						if (gValue == 255 && bValue == 255 && rValue == 255) {

							Log.i("LSJ", "======= x,y ======= :" + j + "," + i);
							Log.i("LSJ", "======= b,g,r======= :" + bValue
									+ "/" + gValue + "/" + rValue);

						}

						String str = bValue + "/" + gValue + "/" + rValue;

						txtView.setText(str);

					}
				}
			}
		});

	}

}

 

안드로이드찢어 (1,080 포인트) 님이 2014년 12월 18일 질문
안드로이드찢어님이 2014년 12월 18일 수정

1개의 답변

0 추천

다음은 픽셀을 읽어서 컬러를 변경하는 예제입니다 (참고해보세요)

 

private void sharpen(Bitmap src, int bitOffset) {
 
            // get image size
            int width = src.getWidth();
            int height = src.getHeight();
            // create output bitmap
            Bitmap bmOut = Bitmap.createBitmap(width, height, src.getConfig());
            // color information
            int A, R, G, B;
            int pixel;
 
            // scan through all pixels
            for(int x = 0; x < width; ++x) {
                for(int y = 0; y < height; ++y) {
                    // get pixel color
                    pixel = src.getPixel(x, y);
                    A = Color.alpha(pixel);
                    R = Color.red(pixel);
                    G = Color.green(pixel);
                    B = Color.blue(pixel);
 
                    // round-off color offset
                    R = ((R + (bitOffset / 2)) - ((R + (bitOffset / 2)) % bitOffset) - 1);
                    if(R < 0) { R = 0; }
                    G = ((G + (bitOffset / 2)) - ((G + (bitOffset / 2)) % bitOffset) - 1);
                    if(G < 0) { G = 0; }
                    B = ((B + (bitOffset / 2)) - ((B + (bitOffset / 2)) % bitOffset) - 1);
                    if(B < 0) { B = 0; }
 
                    // set pixel color to output bitmap
                    bmOut.setPixel(x, y, Color.argb(A, R, G, B));
                    tempBitmap = bmOut;
                    mImageView.setImageBitmap(bmOut);
                    saveToLocal();
                }
            }
 
 
 
 
    }
 
 
 
doridori2013@nate.com
익명사용자 님이 2014년 12월 18일 답변
...