美文网首页
使用GPUImage,设置图片亮度时 真机调试崩溃,报错: re

使用GPUImage,设置图片亮度时 真机调试崩溃,报错: re

作者: 西瓜吃了吗 | 来源:发表于2021-09-06 16:18 被阅读0次

    报错代码如下:

    - (UIImage *)changeValueForBrightnessFilter:(float)value image:(UIImage *)image;
    {
        GPUImageBrightnessFilter *filter = [[GPUImageBrightnessFilter alloc] init];
        filter.brightness = value/100;
        
        GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image];
        [filter forceProcessingAtSize:image.size];
    
        [pic addTarget:filter];
    
        [pic processImage];
        [filter useNextFrameForImageCapture];
        return [filter imageFromCurrentFramebuffer];
    }
    

    报错提示:

    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error at CVOpenGLESTextureCacheCreateTextureFromImage -6683'
    terminating with uncaught exception of type NSException

    解决办法

    加入如下代码:

      CGSize outputImgSize = pic.outputImageSize;
      [filter forceProcessingAtSize:outputImgSize];
    

    原因:

    目前iOS设备 GPU处理的矩阵最大为40964096 ,超过这么大的尺寸GPU渲染,则会失败,
    使用GPUImagePicture的outputImageSize输出尺寸,作为滤镜的渲染尺寸。
    因为GPUImagePicture的outputImageSize会对图片尺寸按4096
    4096的最大尺寸等比进行缩放。

    相关文章

      网友评论

          本文标题:使用GPUImage,设置图片亮度时 真机调试崩溃,报错: re

          本文链接:https://www.haomeiwen.com/subject/ifzewltx.html