0

我正在使用以下代码来修改图像的像素。我遇到的问题是图像的颜色不正确。你对这个问题有任何想法吗?

CGImageRef inImage = img.CGImage;
CGContextRef ctx;

    CFDataRef m_DataRef; 
    m_DataRef = CGDataProviderCopyData(CGImageGetDataProvider(inImage)); 
    UInt8 * m_PixelBuf = (UInt8 *) CFDataGetBytePtr(m_DataRef); 
//    Byte tmpByte; 
    int length = CFDataGetLength(m_DataRef); 

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

    } 

    ctx = CGBitmapContextCreate(m_PixelBuf, 
                                CGImageGetWidth( inImage ), 
                                CGImageGetHeight( inImage ), 
                                8, 
                                CGImageGetBytesPerRow( inImage ), 
                                CGImageGetColorSpace( inImage ), 
                                kCGImageAlphaPremultipliedFirst ); 


    CGImageRef imageRef = CGBitmapContextCreateImage (ctx); 
    UIImage* rawImage = [UIImage imageWithCGImage:imageRef]; 

    CGContextRelease(ctx); 

4

1 回答 1

0

尝试使用kCGImageAlphaPremultipliedLast而不是kCGImageAlphaPremultipliedFirst.

于 2011-02-11T23:19:43.470 回答