I.K.Picture & IT Info.

Bitmap 객체를 JPEG 이미지로 저장 하는법.. 본문

Development/Java/Android

Bitmap 객체를 JPEG 이미지로 저장 하는법..

helpful-intruder 2014. 3. 9. 17:10
반응형

대부분 안드로이드에서 이미지를 다루기 위한 객채로 


Bitmap을 많이 사용하게 됩니다!


하지만... 


실질적으로 파일을 저장하거나 공유할 땐 jpeg 파일을 많이 사용하게 되죠..


제가 예전에 앱 개발을 하다가 이미지를 다룰 일이 많다보니..


이미지를 저장하거나 편집하거나 이런 모듈들을 많이 찾아보기도하고 만들어보기도했는데


그 중에 오늘은 이미지를 jpeg로 저장하는 법에 대해 포스팅 하려합니다! ^^


일단 안드로이드에서 이미지를 저장 하려는 순서는 다음과 같아요..


저장하려는 Bitmap 객체를 가지고 있다는 가정 하에~ 간단한 로직에 대해서 말씀드릴께요~



1. 파일 저장할 경로를 설정한다(String 객체)


2. FileOutputStream 객체를 이용하여 1에 설정한 파일 경로와 파일 이름으로 새로운 파일 객체를 만든다.


3. bitmap.compress를 이용하여 이를 JPEG 파일로 변환하여 FileOutputStream 객체에 쓴다.


4. FileOutputStream 객체를 닫는다. 



이렇게 하면 되는데요..


말로 하면 복잡한거같으니 소스코드를 보여드리겠습니다!!~^^

	/**
	 * Image SDCard Save (input Bitmap -> saved file JPEG)
	 * Writer intruder(Kwangseob Kim)
	 * @param bitmap : input bitmap file
	 * @param folder : input folder name
	 * @param name   : output file name
	 */
	  public static void saveBitmaptoJpeg(Bitmap bitmap,String folder, String name){
	    	String ex_storage =Environment.getExternalStorageDirectory().getAbsolutePath();
                                       // Get Absolute Path in External Sdcard 
	    	String foler_name = "/"+folder+"/";
	    	String file_name = name+".jpg";
	    	String string_path = ex_storage+foler_name;
	    	
	    	File file_path; 
	    	try{
	    		file_path = new File(string_path);
	    		if(!file_path.isDirectory()){
	    			file_path.mkdirs();
	    		}
	    		FileOutputStream out = new FileOutputStream(string_path+file_name);
	    		
	    		bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
	    		out.close(); 
	    		
	    	}catch(FileNotFoundException exception){
	    		Log.e("FileNotFoundException", exception.getMessage());
	    	}catch(IOException exception){
	    		Log.e("IOException", exception.getMessage());
	    	}
	    }



반응형
Comments