вместо этого
byte []bt = buffer.toString().getBytes();
Bitmap i = BitmapFactory.decodeByteArray(bt, 0,bt.length);
используйте это
Bitmap i = BitmapFactory.decodeByteArray(buffer.getBytest or buffer.tobytes, 0,bt.length);
Я не знаю, каков ваш буфер, но попробуйте получить байты напрямую, вместо того, чтобы конвертировать его в строку и затем получить байты.