- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 GPUImageAlphaBlendFilter
,我在 UI
中也有一个 slider ,它允许我更改mix。它工作得很好,我真的可以快速来回移动 slider ,但如果我滑动太快或滑动超过几秒钟,它通常会给我这个错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Tried to overrelease a framebuffer, did you forget to call -useNextFrameForImageCapture before using -imageFromCurrentFramebuffer?
来自GPUImage/framework/Source/GPUImageFramebuffer.m:269中的解锁函数
根据 Brad Larson 的 Framebuffer Article , useNextFrameForImageCapture 不是明确需要的,因为 imageByFilteringImage 已经解决了这个问题。但不知何故,帧缓冲区计数不同步,可能是因为它跟不上快速更新请求。
我想知道我是否做错了什么。有什么想法吗?
下面的代码基本上是这样做的:
1. 首先调用设置过滤器来设置所有内容
2. 当 slider 移动时,applyAndGetCIImage
被 slider 调用。
public class StylePhotoFilter: PhotoFilter {
var blendFilter: GPUImageAlphaBlendFilter!
var originalImage: UIImage!
var styledImage: UIImage!
var styledImageSource: GPUImagePicture!
override func setupFilter() {
// setup the filters
blendFilter = GPUImageAlphaBlendFilter()
// setting up the image to edit
if(uiImage == nil) {
let context = CIContextManager.sharedInstance
let cgiImgRef = context.createCGImage(inputImage, fromRect: inputImage.extent())
originalImage = UIImage(CGImage: cgiImgRef)
} else {
originalImage = uiImage!
}
// apply the style fully
// styledImage = // I created this image earlier, we can assume it works
// add target photo
styledImageSource = GPUImagePicture(image: styledImage)
styledImageSource.addTarget(blendFilter, atTextureLocation: 0)
}
public override func applyAndGetCIImage(sliderVal: Float) -> CIImage! {
// set the mix
blendFilter.mix = sliderVal
// blend it
// blendFilter.useNextFrameForImageCapture() // According to Brad Larson, this is no longer needed, as imageByFilteringImage does this for you
styledImageSource.processImage()
let blendedImage = blendFilter.imageByFilteringImage(originalImage)
return CIImage(image: blendedImage)
}
}
最佳答案
方法 useNextFrameForImageCapture
应该应用于滤镜,但不适用于图片。
blendFilter = GPUImageAlphaBlendFilter()
blendFilter.useNextFrameForImageCapture()
关于ios - GPUImage - 尝试在混合过于频繁时过度释放帧缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27140906/
我正在开发适用于 Wordpress 的 PSD,并面临着根据颜色过度对齐背景图像或相反的问题。 在桌面上一切都很好,但在移动设备上背景图像变小了(我使用了 background-size: 100%
在标准 Modelica 流体流量源中,通常指定流量或压力。例如,以下边界设置(P 表示压力边界,F 表示流量边界)通常会围绕管道组件: P - 管道 - P F - 管道 - P 但是,有时在同一侧
我正处于设计基于 Azure 的应用程序的早期阶段。考虑到我可能预期的需求的变化性,Azure 吸引我的地方之一是它的可扩展性。因此,我试图保持事物松散耦合,以便我可以在需要时添加实例。 我看到的关于
我与 Xcode 4 dot notation code sense problem 正好相反!点符号的代码完成不仅显示属性,还显示我的方法(在每个完成的左侧标记 P 或 M 分别指示它是属性还是方法
我是一名优秀的程序员,十分优秀!