En el desarrollo de Android, ¿cómo controlar la resolución o el tamaño de la foto cuando se solicita la intención de tomar una foto? ¿Puede alguien ayudarme a aclarar esto?
Comprimido. almacenamiento:
Archivo file=new File("/sdcard/feng.png");
pruebe {
FileOutputStream out=new FileOutputStream(file);
if (bitmap.compress(Bitmap.CompressFormat.PNG, 100, salida)){
salida.flush();
salida.close() ;
}
} catch (FileNotFoundException e) {
// TODO Bloque catch generado automáticamente
e.printStackTrace() ;
} catch (IOException e) {
//TODO bloque catch generado automáticamente
e.printStackTrace();
}
Bien, eso guarda la imagen en el archivo /sdcard/feng.png, ¿verdad?
Pero la escala aquí se guarda según la relación de aspecto. A continuación, también puede escalar según un tamaño fijo:
int bmpWidth = bitmap.getWidth(); >
int bmpHeight = bitmap.getHeight();
int bmpWidth = bitmap.getWidth()
int bmpHeight = bitmap.getHeight()getHeight(); p> p>
//Escala el tamaño de la imagen
float scaleWidth = (float) sWidth / bmpWidth; //Escala sWidth según un tamaño fijo, escribe tan grande como quieras
float scaleHeight = (float) sHeight / bmpHeight; //
Matriz matriz = new Matrix()
Matrix.postScale(scaleWidth, scaleHeight
);// genera el objeto Bitmap escalado
Bitmap resizeBitmap = Bitmap. createBitmap(
bitmap, 0, 0, bmpWidth, bmpHeight, Matrix, false
);mapa de bits. reciclar();
mapa de bits resizeBitmap = mapa de bits;
// mapa de bits a byte[]
byte[] photoData = mapa de bits2Bytes(resizeBitmap)
p>//Guardar el archivo
String fileName = "/sdcard/test.jpg"
FileUtil.writeToFile(fileName, photoData) ;