Стиль приложения Google Photos для обрезки, выпрямления и панорамирования изображений

Я ищу манипуляции с изображениями в стиле приложения Google Фото. Я новичок в обработке изображений. Любая инструкция о том, как сделать прямоугольник обрезки с изображением того же размера, что и прямоугольник обрезки, вращение (которое поворачивает как изображение, так и прямоугольник обрезки), выпрямление изображения (в том числе способ получения такого пользовательского интерфейса в виде ползунка), будет отличным вариантом. Если есть некоторые библиотеки, которые имеют эти функции, это также будет работать. Приложение Google Photos - Обрезка, панорамирование и выпрямление изображений

2 ответа

В Square есть библиотека для загрузки и воспроизведения изображений. Вот некоторые особенности:

- Handling ImageView recycling and download cancelation in an adapter.
- Complex image transformations with minimal memory use.
- Automatic memory and disk caching.

На их сайте есть подробная информация о том, как использовать библиотеку. Проверьте это: Пикассо

Линия gradle, которую вы должны добавить:

compile 'com.squareup.picasso:picasso:2.5.2'

Это очень просто в использовании. Вот как я загружаю и настраиваю изображение в ImageView в моем примере приложения:

Picasso.with(mContext).load("http://cdn0.vox-cdn.com/uploads/chorus_asset/file/798874/DSCF1913.0.jpg").fit().centerCrop().into(imageView);

Как видите, я использовал fit().centerCrop() Вот. Это позволит настроить изображение так, чтобы оно соответствовало пропорционально imageView, Вы можете попробовать различные формы преобразования изображений, чтобы лучше соответствовать вашим потребностям.

Вы также можете загрузить изображения из вашей папки для рисования или непосредственно из файла:

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);

РЕДАКТИРОВАТЬ: Похоже, я не полностью понял ваш вопрос, когда я впервые прочитал его. Вот несколько советов о том, чего вы пытаетесь достичь. Может быть, не совсем то, что вы хотите, но я думаю, что это может быть началом.

Если вы хотите повернуть изображение, вы можете сделать это с помощью Picasso, используя RequestCreator.rotate(float degrees), Вот документация для RequestCreator.

Что касается обрезки изображений (как показано, внутри указанного прямоугольника), есть: обрезка Android.

Или вы можете использовать преобразования Пикассо и создать преобразование как

CropTransformation(Top, Center, Bottom);

И попросите Пикассо преобразовать изображение так:

Picasso.with(mContext).load(R.drawable.demo)
    .transform(transformation).into((ImageView) findViewById(R.id.image));

Также, как сказал @Amit K Saha в своем ответе, вы можете использовать некоторые эффекты Android SDK. Проверьте android.media.effect,

Надеюсь это поможет.

Есть некоторая помощь от Android SDK. Может быть, не совсем то, что вы ищете, но стоит попробовать. Посмотрите здесь.

android.media.effect

И список доступных эффектов можно найти здесь

http://developer.android.com/reference/android/media/effect/EffectFactory.html

Другие вопросы по тегам