2014年7月29日火曜日

androidの画像URLから画像pathへ変換する


画像を保存し、POSTするために実体のパスが知りたくて調べた事をメモしますφ(・ω・)



 変換前 : content://media/external/images/media/706
 ↓
 変換後 : /storage/emulated/0/DCIM/100ANDRO/DSC_0092.jpg
そうそうこの形に変換したかったのです(・ω・)ノシわーぃわーぃ 変換の仕方は以下のとおりです ↓
  /*
     * Intent データから bitmapへ変換する
     * 
     */
    public static Bitmap convertBitmapByIntent( Activity activity, Intent data ){
        
        Bitmap bmp = null;
        InputStream stream = null;
        try {
            stream = activity.getContentResolver().openInputStream(
                    data.getData());
            bmp = BitmapFactory.decodeStream(stream);
        
            stream.close();

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return bmp;
        
    }
 

  /*
     * intent から 画像パスを取得する(実体)
     */
    public static String getImagePath( Activity activity, Intent data ){
        
        if( data == null ){
            return "";
        }
        
        //android内画像URLからPATHに変換する
        ContentResolver cr = activity.getContentResolver();
        String[] columns = {MediaStore.Images.Media.DATA};
        Cursor c = cr.query(data.getData(), columns, null, null, null);
        c.moveToFirst();
        
        File fileContents = new File( c.getString(0) );
        
        return fileContents.getAbsolutePath();
    }
    

    /*
     * intent から 画像パスを取得する(実体)
     */
    public static String getImageName( Activity activity, Intent data ){
        
        if( data == null ){
            return "";
        }
        
        String imagePath = getImagePath( activity, data );
        
        String[] array = imagePath.split("/");
        
        int length = array.length;
        
        return array[length-1];//最後の情報を取得する
    }

こちらのサイトを参考にさせていただきました。 どうもありがとうございます(・ν・) http://www.android-navi.com/archives/android_1/_uri_path/

0 件のコメント:

コメントを投稿