Mam jeden problem. Kiedy próbuję uzyskać obraz z kamery, jakość jest bardzo niska. Najpierw przechwyć zdjęcie za pomocą aparatu, a następnie zapisz w katalogu, a jednocześnie pobierz to zdjęcie i pokaż w mojej aplikacji. Zapisane zdjęcie w katalogu jest dobrej jakości, ale gdy je otrzymam z katalogu, jakość jest niska . poniżej jest mój przykładowy kod:Niska jakość obrazu/obrazu podczas przechwytywania z kamery
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == CAMERA_PIC_REQUEST) {
Bitmap thumbnail = (Bitmap) intent.getExtras().get("data");
if (g==1)
{
ImageView myImage = (ImageView) findViewById(R.id.img5);
myImage.setImageBitmap(thumbnail);
View a = findViewById(R.id.img5);
a.setVisibility(View.VISIBLE);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byteArray1 = stream.toByteArray();
}
}
dowolne rozwiązanie/sugestia? Dzięki :)
rozwiązać
Problem rozwiązany, gdy śledzę kodu podanego przez Antrromet poniżej
Nie widzisz, że masz zdjęcie z katalogu? Widzę tylko, że korzystasz z dołączonej miniatury, która, nawiasem mówiąc, jest podatna na błędy, ponieważ z mojego doświadczenia nie wszystkie urządzenia zwracają "dodatkowe dane". Miniatura oczywiście nie będzie miała takiego samego rozmiaru jak "pełny" obraz na nośniku. –
tak naprawdę nazywam kamerę za pomocą tego: Intent cameraIntent = new Intent (android.provider.MediaStore.ACTION_IMAGE_CAPTURE); \t \t \t \t \t \t startActivityForResult (cameraIntent, CAMERA_PIC_REQUEST); jaka jest Twoja sugestia, aby uniknąć błędu i jak uzyskać rzeczywisty rozmiar zdjęcia? Dziękuję za odpowiedź :) – ckng
Najlepszym rozwiązaniem jest prawdopodobnie [podać ścieżkę wyjściową] (http://stackoverflow.com/a/7529603/1029225) z intencją kamery. Alternatywnie możesz również zaimplementować [własną logikę przechwytywania zdjęć] (http://stackoverflow.com/a/4855261/1029225) (więcej pracy) lub ewentualnie użyć ['FileObserver'] (http://developer.android. com/reference/android/os/FileObserver.html) w katalogu DCIM/Camera. –