안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요..
이제 막 앱 개발에 발을 들여놓은 생 초보입니다 ㅠ
현재 zxing library를 가져다가 현재 만들고 있는 프로젝트 내부에 이식을 시켜놓은 상태고,
가로모드에서 세로모드로 까지 적용이 완료 되었습니다.
하지만...!!!!
저를 좌절 시키는 부분이 있네요 ㅠ
DecodeHandler 클래스에서
if (source != null) {
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
try {
rawResult = multiFormatReader.decodeWithState(bitmap);
} catch (ReaderException re) {
// continue
} finally {
multiFormatReader.reset();
}
}
카메라로 인식한 부분을 스캔하여 비트맵으로 변환하는 것 까지는 알겠는데..
비트맵 부분이 인식 과정에서 잔상으로 남는것을 숨기고 싶습니다.
현재 저의 실력으로는 zxing의 소스를 다 파악하기에는 힘드네요 ㅠ
구글링을 열심히 해봤지만 bitmap 잔상 숨김 방법은 어디에도 없는 것 같아 고수분들에게 자문을 구합니다 ㅠㅠ
많은 조언 부탁드립니다!
자문자답입니다.
bundle.putParcelable(DecodeThread.BARCODE_BITMAP, source.renderCroppedGreyscaleBitmap());
DecodeHandler 클래스 위에 해당하는 라인에서 (제 프로젝트 기준 107번 라인) 빨간 부분의 매소드를 타고 넘어가면
for (int y = 0; y < height; y++) {
int outputOffset = y * width;
for (int x = 0; x < width; x++) {
int grey = yuv[inputOffset + x] & 0xff;
// pixels[outputOffset + x] = 0xFF000000 | (grey * 0x00010101);
pixels[outputOffset + x] = 0x00000000 | (grey * 000000);
}
inputOffset += dataWidth;
}
주석 처리 된 부분의 라인을
빨간색 글씨의 라인으로 교체해 주시면 투명도 제로가 되어서 잔상이 안남네요 ㄷㄷ