【发布时间】:2011-12-31 15:38:02
【问题描述】:
我的 Core Filters 测试应用程序的调试控制台显示以下消息:
CGImageRef 0x7a0e890 具有行字节填充。执行代价高昂的取消填充操作!
我在标题或 Google 搜索中找不到该确切消息(减去指针信息)的匹配项。
我的问题是(1)这是什么意思以及(2)我该如何纠正这种情况?
以下是我如何使用 CIFilter 生成过滤后的 UIImage 的示例。
- (UIImage*)sepia
{
CIImage *beginImage = [CIImage imageWithCGImage:[self CGImage]];
CIContext *context = [CIContext contextWithOptions:nil];
CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"
keysAndValues: kCIInputImageKey, beginImage,
@"inputIntensity", [NSNumber numberWithFloat:0.8], nil];
CIImage *outputImage = [filter outputImage];
CGImageRef cgimg =
[context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *newImg = [UIImage imageWithCGImage:cgimg];
self = newImg;
CGImageRelease(cgimg);
return self;
}
【问题讨论】:
-
我从未收到对我的问题的真正答案——我的情况是特定于 iOS 的,我提供了导致问题的代码但没有收到解决方案。罗宾是唯一一个提供任何帮助的人,对这个问题没有表现出任何兴趣。我会提供赏金,但我看到很多赏金没有足够的答案,所以不值得。
-
我们今天刚开始遇到这个问题,我们也无法追踪它。
-
@ThuggishNuggets —如果您发现任何新信息,请告诉我
-
我们通过确保图像的宽度是 4 的倍数来解决这个问题,考虑到下面@Robin 的回答,这很有意义。我对它的工作原理的理解是,一行中的字节数必须能被 2 的幂整除。这在我们的例子中有效,因为我们的像素格式是 RGBA8888 或每个像素 4 个字节。通过将我们的宽度限制为 4 的倍数,我们确保图像宽度的每 4 个像素增量向行中添加 16 个字节,这使得行中的字节数始终可被 16 整除,即 2^4(可被幂2)。
标签: ios ios5 core-image