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

bmp 24bit를 RGB565로 변환하고싶습니다.

0 추천

안녕하세요.

bmp파일을 변환하려고 하는데, RGB565가 bmp16bit와 동일한 것이 맞나요??..

맞다면 24bit를 16bit로 변환하려고 합니다. 

갤러리에서 불러온 bmp이미지를 다음 코드로 처리했습니다.

BitmapFactory.Options options = new BitmapFactory.Options();
			options.inJustDecodeBounds = false;
			options.inSampleSize = 1;
			options.inPreferredConfig = Bitmap.Config.RGB_565;
			Bitmap bitmap = null;
			if ((bitmap = BitmapFactory.decodeFile(imgPath, options)) == null) 
			{
				// 이미지 디코딩 실패
			}
			else
			{
				Log.e("16비트 변환성공","변환완료");
				imageView.setImageBitmap(bitmap); //배치해놓은 ImageView에 set 
				SaveBitmapToFileCache(bitmap,imgPath);
			}

불러온 24bit이미지(bitmap변수)를 변환시켰는데..이게 변환된건지 안된건지 티가 안나서 모르겠습니다.

버튼을 연타하면 해당 이미지가 점점 깨지기도하고..

pc로 변환된 이미지를 열려고 하면 파일이 손상되었다고 합니다..-_-;;

+

위 방법말고..다른 예제를 찾아보니 decode로 bitmap파일을 읽어올 때 자동으로 rgb565로 불러온다는데요,

Bitmap src = BitmapFactory.decodeFile("비트맵이미지 파일경로");

이런식으로 불러온 후.

File fileCacheItem = new File(strFilePath);
        OutputStream out = null;
        try
        {
            fileCacheItem.createNewFile();
            out = new FileOutputStream(fileCacheItem);
            bitmap.compress(CompressFormat.JPEG, 100, out);
        }

로 저장했는데, 단 1회만 convert해도 저장된 파일을 열람하면 손상되었다고 나옵니다...

저장방식이 잘못된걸까요..?

 

망고사탕 (5,000 포인트) 님이 2015년 10월 5일 질문
망고사탕님이 2015년 10월 5일 수정

1개의 답변

0 추천
읽는 파일명과 쓰는 파일명이 동일한게 조금 이상합니다.

 파일명을 다르게 한번 써보시기 바랍니다.
안_드루이드 (14,510 포인트) 님이 2015년 10월 5일 답변
댓감사합니다..변수를 다르게 줘도 마찬가지인거같습니다..변경을 할수록 이미지가 깨지는걸로 봐선 무언가의 작업이 되는거같은데...윈도우이미지뷰말고 알씨로 보이니 이미지가 깨졌다는 경고문이 나오지 않고 보이기는 합니다...
파일을 jpg 포맷으로 저장하는데, 확장자 확인해보시고 무손실 포맷인 png로 저장을 한번 해보세요.
...