0

反転して画像化しようとしていますが、アルファカウントもリセットする必要がありますが、それをしようとするとアクセスエラーが発生します (最後の行でクラッシュします)。データ配列にアクセスできないのは何ですか? この方法は、以前の iOS バージョンで機能します。

CGImageRef img;
img =image.CGImage;

CFDataRef dataref=CopyImagePixels(img);
UInt8 *data=(UInt8 *)CFDataGetBytePtr(dataref);
int length=CFDataGetLength(dataref);


for(int index=0;index<length;index+=4){


    int alphaCount = data[index+0];
    int redCount = data[index+1];
    int greenCount = data[index+2];
    int blueCount = data[index+3];
    int average = (int)roundf(0.2*redCount + 0.71*greenCount+ 0.07*blueCount);


    alphaCount = average;
    if (alphaCount < 0) alphaCount = 0; 
    if (alphaCount>255) alphaCount =255;
    data[index+0] = (Byte) alphaCount;    <-----WHERE IT GIVES EXEC BAD ACCESS

 ....}
4

1 に答える 1

0

iOS6 では dataref をミュータブルに設定する必要があることがわかりました。

CFMutableDataRef m_DataRef = CFDataCreateMutableCopy(0, 0, CGDataProviderCopyData(CGImageGetDataProvider(inImage)));
于 2013-05-13T12:39:44.150 に答える