作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我调用CFDataGetBytePtr
时,我的应用程序崩溃(偶尔-通常在运行8到10次后崩溃)。基本上,我想从图像中复制像素字节并在可以进行进一步操作时存储在缓冲区中。是因为我没有发布m_PixelBuf
吗?还是复制数据的错误方法?
+ (int**) UIImage2GrayInt:(UIImage*)inImage
{
CGImageRef cgImage = inImage.CGImage;
CFDataRef m_DataRef = CGDataProviderCopyData(CGImageGetDataProvider(cgImage));
UInt8 *m_PixelBuf = (UInt8 *) CFDataGetBytePtr(m_DataRef);
int m_iH = CGImageGetHeight(cgImage);
int m_iW = CGImageGetWidth(cgImage);
//short* m_inDataGrey = malloc(sizeof(short)*(m_iW*m_iH));
int**piData = [self initVal:m_iH:m_iW];
//Convert GreyScale and copy data
int iStep,jStep;
for (int i = 0; i < m_iH; i++)
{
iStep = i*m_iW*4;
//iStepGrey = i*m_iW;
for (int j = 0; j < m_iW; j++)
{
jStep = j*4;
piData[i][j] = ((double)m_PixelBuf[iStep + jStep] + (double)m_PixelBuf[iStep + jStep +1] + (double)m_PixelBuf[iStep + jStep +2])/3.0;
}
}
m_PixelBuf = NULL;
CFRelease(m_DataRef);
return piData;
}
1. 0 MyApp 0x000606ae testflight_backtrace + 238
2. 1 MyApp 0x00061398 TFSignalHandler + 264
3. 2 libsystem_c.dylib 0x328b87ec _sigtramp + 48
4. 3 MyApp 0x00046fa4 +[clsGlobalHelper UIImage2GrayInt:] (clsGlobalHelper.m:276)
5. 4 MyApp 0x00046fa4 +[clsGlobalHelper UIImage2GrayInt:] (clsGlobalHelper.m:276)
6. 5 MyApp 0x00046d40 +[clsGlobalHelper resizeImageAvg:::] (clsGlobalHelper.m:212)
7. 6 MyApp 0x00036fd2 -[clsNewPhoto ProcessSelectedFace] (clsFirstViewController.m:618)
8. 7 MyApp 0x000354ae -[clsNewPhoto btnSelectGender:] (clsFirstViewController.m:309)
9. 8 CoreFoundation 0x354063fc -[NSObject performSelector:withObject:withObject:] + 52
initval
的代码
+(int**) initVal:(int) Nr:( int) Nc
{
int ** p;
p = calloc(Nr,sizeof(int*));
for(int i = 0; i < Nr; i++)
{
p[i] = calloc(Nc,sizeof(int));
}
return p;
}
最佳答案
this问题的答案帮助我解决了问题。仍然不知道CFDataGetBytePtr是什么问题,但至少我有前进的解决方案。
关于iphone - CFDataGetBytePtr期间应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042816/
在使用 CFDataGetBytePtr 时遇到一些问题。当我同时使用它加载 2 批图像数据到内存中进行像素颜色评估时,我发现一个数据集与另一个数据集相同,然后我做了一些挖掘,两个数据地址相同,我很不
我是一名优秀的程序员,十分优秀!