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

.jpg .png .bmp 확장자구별

0 추천
앨범에서 사진을 선택해서 가저오는데 거기서 확장명이 .jpg 인걸 구별하고싶습니다

어던식으로 짜야될까요?
안드로이드찢어 (1,080 포인트) 님이 2015년 4월 3일 질문

2개의 답변

+1 추천
아래 답글 확인하세요.
이드로이드 (22,930 포인트) 님이 2015년 4월 3일 답변
이드로이드님이 2015년 4월 3일 수정
temp가 뭔가요 설명 조금만 더 적어주시면 감사하겠습니다.
private String getExtension(String fileStr){
        return fileStr.substring(fileStr.lastIndexOf(".")+1,fileStr.length());
    }
이걸로 하세요.
파일명 넘기시면 됩니다.


String exe = getExtension("../../201504031425.jpg"); //파일 전체 경로 또는 파일명
if(exe.equals("jpg")){
//jpg일경우

}else{
  //jpg 외 파일

}
경로가 final String uImgpath = intent.getStringExtra("uImgpath");
        Uri uImguri = Uri.parse(uImgpath);
uri 로 받아왓는데 안되네요.
브레이크 포인트 찍고 uImgpath 값이 잘 넘어오는지 확인해보세요.
갤러리에서 사진 선택한 후

activity에서

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if(requestCode == 갤러리 호출할때 넘겼던 requestCode){
        if(resultCode == Activity.RESULT_OK){
           Uri uri = intent.getData();
           String path = uri.toString();
           Streing exe = getExtension(path);
           if(exe.equals("jpg")){
              //jpg일경우

           }else{
              //jpg 외 파일
           }
        }
    }

}

private String getExtension(String fileStr){
        return fileStr.substring(fileStr.lastIndexOf(".")+1,fileStr.length());
}
이렇게 하시면 됩니다.
jpg 나 png 일때 bmp로 바꿔주고 bmp일때는 그냥 그대로 파일을 쓸려고하는데요.

    if (exe.equals("jpg") || exe.equals("png")) {
                    String mFileName = "Face.bmp";
                    String savePath = Environment.getExternalStorageDirectory()
                            .getAbsolutePath() + "/" + mFileName;

                   
                    BitmapUtils bmpUtil = new BitmapUtils();
                    boolean isSaveResult = bmpUtil.save(resized, savePath);

                } else {

                    String mFileName = "Face.jpg";
                    String savePath = Environment.getExternalStorageDirectory()
                            .getAbsolutePath() + "/" + mFileName;

                }

이런식으로 쓰면되나요?

jpg는 bmp만들어지는거 확인햇구요. png 를 || 연산자로 하니까 생성이안되네요

밑에 face.jpg 로 생성하는거는 bmp파일을 jpg 로 변환하는거 한번 테스트해본거구요
BitmapUtils.save함수가 어떻게 생겼는지 모르겠지만,,,
jpg는 되고 png는 안된다면 sava함수 쪽에서 png가 안되는 이유를 살펴 보세요.
bitmap utils.save 가 bmp로 만들어주는소스입니다.
if (exe.equals("png") || exe.equals("jpg")) {
                    String mFileName = "asdf.bmp";

                    String savePath = Environment.getExternalStorageDirectory()
                            .getAbsolutePath() + "/" + mFileName;

                    BitmapUtils bmpUtil = new BitmapUtils();
                    boolean isSaveResult = bmpUtil.save(resized, savePath);
                }

이렇게하면 둘다 안만들어지고
||연산자를 안쓰고 png 만 하는경우에는 bmp로 만들어집니다.ㅠㅠ
(exe.toLowerCase().equals("png") || exe.toLowerCase().equals("jpg"))

디버깅으로 한줄씩 실행해서 어디서 문제인지 확인해보세요....
아 잘못봣네요 jpg.png 다 안만들어지네요. if문에서부터 안되네요
uimgbmp 경로가 로그찍으니
:content://media/external/images/media/19
ㅇ런식으로오네요.
미디어에서 가져오는게 확장자명으로아니라 숫자로 15 16 이런식으로받아오네요 ㅠㅠ
content://media/external/images/media/19  이렇게 경로가나옵니다..
어떤식으로 해야받아올수잇을가요..jpg.png로
+1 추천

http://stackoverflow.com/questions/8589645/how-to-determine-mime-type-of-file-in-android

MimeTypeMap.getFileExtensionFromUrl(url) 

or mime type

 

public static String getMimeType(String url)
{
    String type = null;
    String extension = MimeTypeMap.getFileExtensionFromUrl(url);
    if (extension != null) {
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        type = mime.getMimeTypeFromExtension(extension);
    }
    return type;
}

 

aucd29 (218,390 포인트) 님이 2015년 4월 3일 답변
...