2015-05-14 2 views
0

У меня есть URI изображения, которое я пытаюсь загрузить в изображение.Загрузить изображение из URI в определенных размерах, сохраняя пропорции

Uri imageUri = /* URI goes here */ 
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri); 
Imageview iv = (Imageview) findViewById (R.id.my_img_view); 
iv.setImageBitmap(bitmap); 

Изображение загружается в полном разрешении (до 21 мегапикселя, вызывая исключение из памяти). Мое приложение не нужно использовать изображение в полном разрешении, так что я хочу, чтобы изображение масштабируется вниз таким образом, что выполнены следующие условия:

  1. Если высота изображения является больше ширины (т.е. портрет), то масштабируйте ширину до 1024 пикселей и масштабируйте высоту до соответствующего значения, чтобы поддерживать соотношение сторон.

  2. Если ширина изображения больше высоты (то есть пейзаж), то масштабируйте высоту до 1024 пикселей и масштабируйте ширину до соответствующего значения, чтобы поддерживать соотношение сторон.

  3. Если изображение имеет квадратную форму, масштабировать его к 1024x1024

есть ли способ, с помощью которого можно масштабировать растровое изображение перед нанесением его на ImageView (или даже лучше перед Media.getBitmap)?

ответ

0

Попробуйте эту библиотеку: https://github.com/AndroidDeveloperLB/AndroidJniBitmapOperations

Эта библиотека охватывает практически все растровые операции, такие как масштабирование, вращение, cropping..etc

+0

@BuggyCoder - Если вы идете с этим ответом, вы можете захотеть взглянуть на этот вопрос: http://stackoverflow.com/questions/18250951/jni-bitmap-operations-for-helping-to-avoid-oom-when-using-large-images – HaemEternal

+0

Умм, мне действительно нужно использовать стороннюю сторону библиотеки для основной задачи, например, изменение размера изображения? иногда мне интересно, почему основные функции в Android очень сложны: -/ – BuggyCoder

+1

Я нашел здесь некоторое решение. http://stackoverflow.com/questions/4837715/how-to-resize-a-bitmap-in-android – BuggyCoder

Смежные вопросы