如何使用毕加索模糊图像?
How to blur image using Picasso?
我想在使用 picasso 下载后模糊我的图像。我实际上找到了一个可以为我的图像添加模糊效果的库:https://github.com/wasabeef/picasso-transformations
这是我使用的代码:
Picasso.get()
.load(currentEvent.posterDownloadPath)
.transform(BlurTransformation(25,3))
.into(recommendedEventViewHolder.blurryImageView)
但不幸的是我有错误:
我试了好几种方法,还是没能正确使用这个库的模糊效果。你能帮我添加模糊效果吗?也许你有不同的方式(不使用这个库)?
Java 可以。
这段代码对我有用:两个转换都来自 wasabeef 库
SketchFilterTransformation transformation = new SketchFilterTransformation(this);
BlurTransformation transformation1 = new BlurTransformation(this);
Picasso.get()
.load(mImageUri)
.transform(transformation)
.transform(transformation1)
.rotate(decodeRotation(orientation))
.into((ImageView) findViewById(R.id.image));
URI 是文件选择器的数据。
I have this in my Build gradle:
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'jp.wasabeef:picasso-transformations:2.2.1'
// If you want to use the GPU Filters
implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
毕加索
要使用 Picasso,请执行以下步骤:
步骤 1
将此依赖项添加到 Gradle:
repositories {
jcenter()
}
dependencies {
compile 'jp.wasabeef:picasso-transformations:2.2.1'
// If you want to use the GPU Filters
compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
}
步骤 2
设置毕加索变换:
Picasso.get()
.load(currentEvent.posterDownloadPath)
.transform(new BlurTransformation(mContext, 25, 1))
.into(recommendedEventViewHolder.blurryImageView);
在科特林中是这样的:
Picasso.get()
.load(currentEvent.posterDownloadPath)
.transform(BlurTransformation(mContext, 25, 1))
.into(recommendedEventViewHolder.blurryImageView)
您也可以使用 Blurry。 Blurry 是 Android 的简单模糊库。
但是我建议Fresco。 Fresco 是一个在 Android 应用程序中显示图像的强大系统。
壁画
要使用 Fresco,请按照以下步骤操作:
第 1 步: 创建 Android 项目并在模块和同步项目的 build.gradle 上添加 fresco 库依赖。
dependencies {
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'jp.wasabeef:fresco-processors:2.1.0'
}
第 2 步: 在 MainActivity.java 或 Application.java
的 onCreate() 方法中初始化 fresco
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//initialize fresco
Fresco.initialize(this);
setContentView(R.layout.activity_main);
}
第 3 步: 在您的 activity_main.xml 中添加由 Fresco 库提供的 SimpleDraweeView。
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/sdv_image"
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@mipmap/ic_launcher" />
第 4 步: 在编写模糊图像代码之前,您必须处理三个主要的 classes.
i.Postprocessor: - 定义图像模糊度的质量。
ii.ImageRequest: - 使用后处理器实例创建控制器请求。
iii.PipelineDraweeController: - 使用 ImageRequest 和 SimpleDraweeView 实例为视图准备控制器。
第 5 步: 在您的 main activity class 中创建一个具有上下文和半径的 BlurPostprocessor 实例,其中半径是指图像模糊度的百分比.
Postprocessor postprocessor = new BlurPostprocessor(this,50);
第 6 步: ImageRequest class 使用模糊构建图像请求 属性 由后处理器实例持有。
ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse("image url"))
.setPostprocessor(postprocessor)
.build();
第 7 步: 使用 imagerequest 和旧的 simpleDraweeView 创建 PipelineDraweeController
的新实例。
controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
.setImageRequest(imageRequest)
.setOldController(simpleDraweeView.getController())
.build();
第 8 步: 将控制器传递给 simpleDraweeView。
simpleDraweeView.setController(controller);
就是这样,现在构建并 运行 应用程序。
尽情享受吧:)
我想在使用 picasso 下载后模糊我的图像。我实际上找到了一个可以为我的图像添加模糊效果的库:https://github.com/wasabeef/picasso-transformations
这是我使用的代码:
Picasso.get()
.load(currentEvent.posterDownloadPath)
.transform(BlurTransformation(25,3))
.into(recommendedEventViewHolder.blurryImageView)
但不幸的是我有错误:
我试了好几种方法,还是没能正确使用这个库的模糊效果。你能帮我添加模糊效果吗?也许你有不同的方式(不使用这个库)?
Java 可以。
这段代码对我有用:两个转换都来自 wasabeef 库
SketchFilterTransformation transformation = new SketchFilterTransformation(this);
BlurTransformation transformation1 = new BlurTransformation(this);
Picasso.get()
.load(mImageUri)
.transform(transformation)
.transform(transformation1)
.rotate(decodeRotation(orientation))
.into((ImageView) findViewById(R.id.image));
URI 是文件选择器的数据。
I have this in my Build gradle:
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'jp.wasabeef:picasso-transformations:2.2.1'
// If you want to use the GPU Filters
implementation 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
毕加索
要使用 Picasso,请执行以下步骤:
步骤 1
将此依赖项添加到 Gradle:
repositories {
jcenter()
}
dependencies {
compile 'jp.wasabeef:picasso-transformations:2.2.1'
// If you want to use the GPU Filters
compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
}
步骤 2
设置毕加索变换:
Picasso.get()
.load(currentEvent.posterDownloadPath)
.transform(new BlurTransformation(mContext, 25, 1))
.into(recommendedEventViewHolder.blurryImageView);
在科特林中是这样的:
Picasso.get()
.load(currentEvent.posterDownloadPath)
.transform(BlurTransformation(mContext, 25, 1))
.into(recommendedEventViewHolder.blurryImageView)
您也可以使用 Blurry。 Blurry 是 Android 的简单模糊库。 但是我建议Fresco。 Fresco 是一个在 Android 应用程序中显示图像的强大系统。
壁画
要使用 Fresco,请按照以下步骤操作:
第 1 步: 创建 Android 项目并在模块和同步项目的 build.gradle 上添加 fresco 库依赖。
dependencies {
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'jp.wasabeef:fresco-processors:2.1.0'
}
第 2 步: 在 MainActivity.java 或 Application.java
的 onCreate() 方法中初始化 fresco@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//initialize fresco
Fresco.initialize(this);
setContentView(R.layout.activity_main);
}
第 3 步: 在您的 activity_main.xml 中添加由 Fresco 库提供的 SimpleDraweeView。
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/sdv_image"
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@mipmap/ic_launcher" />
第 4 步: 在编写模糊图像代码之前,您必须处理三个主要的 classes.
i.Postprocessor: - 定义图像模糊度的质量。
ii.ImageRequest: - 使用后处理器实例创建控制器请求。
iii.PipelineDraweeController: - 使用 ImageRequest 和 SimpleDraweeView 实例为视图准备控制器。
第 5 步: 在您的 main activity class 中创建一个具有上下文和半径的 BlurPostprocessor 实例,其中半径是指图像模糊度的百分比.
Postprocessor postprocessor = new BlurPostprocessor(this,50);
第 6 步: ImageRequest class 使用模糊构建图像请求 属性 由后处理器实例持有。
ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse("image url"))
.setPostprocessor(postprocessor)
.build();
第 7 步: 使用 imagerequest 和旧的 simpleDraweeView 创建 PipelineDraweeController
的新实例。
controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
.setImageRequest(imageRequest)
.setOldController(simpleDraweeView.getController())
.build();
第 8 步: 将控制器传递给 simpleDraweeView。
simpleDraweeView.setController(controller);
就是这样,现在构建并 运行 应用程序。
尽情享受吧:)