지난 포스트에서 비율을 정하는 부분이 있었습니다.
int width = opts.outWidth; int height = opts.outHeight; float sampleRatio = getSampleRatio(width, height); | cs |
이 부분을 더 자세히 알아보겠습니다. getSampleRatio는 width와 height 값을 받는 함수입니다. java에서 기본으로 제공하는 함수가 아니므로 설명이 더 필요합니다.
1. getSampleRatio()
private float getSampleRatio(int width, int height) { } | cs |
이 함수를 채워넣을 것입니다.
final int targetWidth = 1280; final int targetheight = 1280; float ratio; | cs |
우선 이렇게 인자를 형성합니다. 흔히 확인할 수 있는 화면 해상도인 1280 * 720 에서의 1280 입니다.
if (width > height) { // 가로 if (width > targetWidth) { ratio = (float) width / (float) targetWidth; } else ratio = 1f; } else { // 세로 if (height > targetheight) { ratio = (float) height / (float) targetheight; } else ratio = 1f; } | cs |
이렇게 가로와 세로의 경우의 수를 따져줍니다. 모바일 화면이니 1280이 그 기준이 됩니다.
private File createFileFromBitmap(Bitmap bitmap) throws IOException { File newFile = new File(getActivity().getFilesDir(), makeImageFileName()); FileOutputStream fileOutputStream = new FileOutputStream(newFile); bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream); fileOutputStream.close(); return newFile; } | cs |
이렇게 File에다가 Bitmap을 이용해서 함수를 만들어줍니다. getSampleRatio는 단순히 비율만을 결정하므로 파일을 가져와주는 과정이 필요합니다. FileOutPutStram(newFile)을 이용한 다음에 주어진 비트맵을 편집할 수 있도록 bitmap.compress를 사용해줍니다.
2. makeImageFileName()
private String makeImageFileName() { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd_hhmmss"); Date date = new Date(); String strDate = simpleDateFormat.format(date); return strDate + ".png"; } | cs |
여기서 FileName을 설정해줄 수 있습니다. format도 정해줄 수 있습니다. 이름을 정함과 동시에 포맷까지 결정하는 함수입니다. 이미지파일을 다룰 것이므로 png 확장자를 사용했습니다. SimpleDateFormat은 java에서 제공해줍니다.
import java.text.SimpleDateFormat; import java.util.Date; | cs |
이걸 이용하면 됩니다. 날짜 관련 자료들을 텍스트나 원하는 형식으로 편집할 때 유용하게 쓰입니다.
'Java' 카테고리의 다른 글
[android] butterknife 모듈을 이용한 LoginActivity 만들기 (0) | 2018.02.04 |
---|---|
[android] Infinite Scroll 구현 예제 (0) | 2018.02.04 |
[android] 이미지 불러와서 편집하기 (0) | 2018.02.03 |
[android] 이미지 갤러리 그 외 사용방법 (0) | 2018.02.03 |
[android] 이미지 갤러리 (0) | 2018.02.03 |