GpuImage 无法正确呈现

时间:2021-01-22 12:47:23

标签: android android-studio gpuimage android-gpuimageview

目前我正在使用 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 已完成渲染?

0 个答案:

没有答案
相关问题