-
andev
- Сообщения: 219
- Зарегистрирован: 13 янв 2012, 17:56
Сообщение
andev » 31 мар 2012, 07:52
Получаю фото вот так
Код: Выделить всё
private void chooseMyPhoto() {
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_RESULT);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_RESULT) {
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ImageView iv_my_photo_sample = (ImageView) findViewById(R.id.iv_my_photo_sample);
iv_my_photo_sample.setImageBitmap(thumbnail);
photoByteSequence = mobi.krona.utils.Utils.serializeBitmapToString(thumbnail);
saveSettings();
}
}
Фотка выходит 5Mp, максимальное разрешение камеры в аппарате.
Как можно получить фотку, как для контакта (квадратную и маленького разрешения)?
Буду крайне признателен.
-
damager82
- Администратор
- Сообщения: 1383
- Зарегистрирован: 07 янв 2012, 11:32
-
Контактная информация:
Сообщение
damager82 » 02 апр 2012, 09:52
Через Matrix можно
Код: Выделить всё
public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);
// RECREATE THE NEW BITMAP
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height,
matrix, false);
return resizedBitmap;
}
http://thinkandroid.wordpress.com/2009/ ... -a-bitmap/
-
andev
- Сообщения: 219
- Зарегистрирован: 13 янв 2012, 17:56
Сообщение
andev » 02 апр 2012, 11:55
Спасибо, это я находил, однако хотелось бы как в стандартном процессе выбора фото контактов
1) съемка камерой
2) показывает квадратную область которую мы хотим вырезать из фотки (можно зумить и перемещать)
3) после выбора клацаем Save, камера закрывается и мы в onActivityResult получаем ту маленькую область,выбранную нами
Но это в идеале, а так все равно спасибо
-
andev
- Сообщения: 219
- Зарегистрирован: 13 янв 2012, 17:56
Сообщение
andev » 02 апр 2012, 12:32
Только что выяснилась шокирующая подробность.
Мой код из первого поста возвращает фотку 160*120 пикселей!
с одной стороны это хорошо, не надо зумить, достаточно только обрезать 160 по 20 пикселей с двух сторон, но с другой стороны я не люблю, когда что-либо происходит для меня непонятно как.
Какие еще варианты есть получения фото с камеры кроме кода, предложенного мной?