나는 png 파일을 다시 bmp로 변환하고 sdcard에 저장하는 코드를 작성하고 있습니다. 이것은 현재 코드입니다.SdCard 안드로이드에 비트 맵 저장
FileInputStream in;
BufferedInputStream buf;
try {
in = new FileInputStream("File_Path_to_Read.png");
buf = new BufferedInputStream(in);
byte[] bMapArray= new byte[buf.available()];
buf.read(bMapArray);
Bitmap bMap = BitmapFactory.decodeByteArray(bMapArray, 0, bMapArray.length);
//Code segment to save on file
int numBytesByRow = bMap.getRowBytes() * bMap.getHeight();
ByteBuffer byteBuffer = ByteBuffer.allocate(numBytesByRow);
bMap.copyPixelsToBuffer(byteBuffer);
byte[] bytes = byteBuffer.array();
FileOutputStream fileOuputStream = new FileOutputStream("File_Path_To_Save.bmp");
fileOuputStream.write(bytes);
fileOuputStream.close();
if (in != null) {
in.close();
}
if (buf != null) {
buf.close();
}
} catch (Exception e) {
}
bMap을 Sdcard에 저장하는 데 문제가 있습니다. 내가 찾은 모든 예제는 bMap.compress()를 사용합니다. 이 방법을 사용하면 bmp로 저장할 수 없습니다. 누군가가 Sdcard에 비트 맵을 저장하는 방법에 대한 예제를 줄 수 있습니까?
편집 : 이제 파일을 .bmp로 sdcard에 저장할 수 있습니다. 그러나 원래 크기로되지 않습니다. PNG를 BMP로 변환하는 데 어떤 sugguestions?
는'비트 맵 .compress (Bitmap.CompressFormat.JPEG, 80, 아웃)', 저장된 이미지의 품질이 항상 2를 변경하여 가장 적합한을 위해 스스로를 시도해야하므로 변경 매개 변수 – CodeWarrior
압축 방법을 사용할 때 화질이 변하는 것을 알고 있습니다. 그러나 나는 JPEG를 다시 BMP로 변환 할 방법을 찾고있다. 원래 BMP는 편집 된 코드를 사용하는 80Mb와 같으며 14KB가됩니다. 분명히 압축 풀기가 작동하지 않습니다. BMP로 다시 변환 할 수 있습니까? (JPEG에서) 안드로이드에서 할 수 있습니까? – user340