Google相册应用样式图像裁剪,拉直和平移

时间:2015-07-24 18:08:34

标签: android image crop panning

我正在寻找谷歌照片应用程序风格的图像处理。我对图像处理有点新意。关于如何使用与裁剪矩形,旋转(旋转图像和裁剪矩形)相同尺寸的图像制作裁剪矩形的任何线索,图像拉直(包括如何获得该角度滑块类型的UI)将是很好的。如果有一些库具有这些功能,那也可以。 Google Photos App - Image Crop/Pan/Straightening

2 个答案:

答案 0 :(得分:1)

Square有一个用于加载和播放图像的库。 以下是一些功能:

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

有关于如何在其网站上使用lib的详细信息。看看:Picasso

您需要添加的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);

修改: 我第一次看到它时,看起来并不完全理解你的问题。以下是您尝试实现的一些提示。可能不是你想要的,但我认为这可能是一个开始。

如果要旋转图像,可以使用RequestCreator.rotate(float degrees)使用Picasso进行旋转。 这是RequestCreator的文档。

对于裁剪图像(在指定的矩形内,如您所示),有: Android crop

或者您可以使用Picasso Transformations并创建类似

的转换
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

希望这有帮助。

答案 1 :(得分:0)

android sdk有一些帮助。可能不是你正在寻找的,但值得开始。看看这里。

android.media.effect

可在此处找到可用效果列表

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