我正在編寫一個代碼將png文件轉換回bmp並將其保存在SD卡上。這是我現在的代碼。將位圖保存到SD卡Android
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到SD卡時遇到問題。我找到的所有例子都使用bMap.compress()。使用這種方法我不能保存爲BMP。有人可以舉例說明如何在Sdcard上保存位圖嗎?
編輯: 我現在可以將文件保存爲.bmp到SD卡。但它不會達到原始大小。任何關於將PNG轉換爲BMP的建議?
'位.compress(Bitmap.CompressFormat.JPEG,80出)',只要您使用此方法,保存的圖像質量的變化總是讓你不得不改變2親自試一試的最合適該方法的參數。 – CodeWarrior
我知道使用壓縮方法時圖像質量發生了變化。但是,我正在尋找一種方法將JPEG轉換回BMP。原始的BMP就像使用我編輯的代碼80 Mb,我得到14 KB。很顯然,解壓縮不工作...可以轉換回BMP(從JPEG)在Android上完成? – user340