GpuImage 无法正确呈现

问题描述

目前我正在使用 GpuImage 库开发 Android 应用程序。我的目标是通过 GpuImage 对图像应用过滤器。

GpuImage gpuImage = new GpuImage(this);
gpuImage.setBitmap(imageBitmap) // bitmap of the image that I want to apply effect on
gpuImageView = findViewById(R.id.gpuimageview); //it is ImageView
gpuImage.setFilter(new GPUImageSobelEdgeDetection());
gpuImageView.setBitmap(gpuImage.getBitmapWithFilterapplied());

这就是我基本上通过 GpuImage 对图像应用效果并获得过滤器应用位图的方式。 但是当我使用不同的 GpuImage 过滤器快速效果应用于图像时 如下图所示:

ArrayList filtersList = new ArrayList<GpuImageFilter>()
...
//Fill the array with varIoUs GpuImage filters
...
GpuImage gpuImage = new GpuImage(this);
gpuImage.setBitmap(imageBitmap) // bitmap of the image that I want to apply effect on
button = findViewById(R.id.button);
gpuImageView = findViewById(R.id.gpuimageview); //it is ImageView

//button that changes filter at every click
button.setonClickListener(new OnClickListener() {
public void onClick(View v)
{
    if(filtersList.size() > 0){
        gpuImage.setFilter(filtersList.get(filtersList.size()-1));
        filtersList.remove(filtersList.size()-1);
        gpuImageView.setBitmap(gpuImage.getBitmapWithFilterapplied());
    }

});

当我反复快速地点击按钮时, 我得到一个位图,其中只填充了灰色等颜色。 有什么办法可以防止这个问题吗?或者在应用其他效果之前,我如何确定 GpuImage 已完成渲染?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)