【问题标题】:kCGColorSpaceGenericRGB is deprecated on iPhone?kCGColorSpaceGenericRGB 在 iPhone 上已弃用?
【发布时间】:2010-10-08 07:08:23
【问题描述】:

我正在尝试使用以下代码获取位图上下文:

GContextRef MyCreateBitmapContext (int pixelsWide, int pixelsHigh)
{
    CGContextRef    context = NULL;
    CGColorSpaceRef colorSpace;
    void *          bitmapData;
    int             bitmapByteCount;
    int             bitmapBytesPerRow;

    bitmapBytesPerRow   = (pixelsWide * 4);                          // 1
    bitmapByteCount     = (bitmapBytesPerRow * pixelsHigh);

    colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);// 2
    bitmapData = malloc( bitmapByteCount );                          // 3
    if (bitmapData == NULL)
    {
        fprintf (stderr, "Memory not allocated!");
        return NULL;
    }

    context = CGBitmapContextCreate (bitmapData,                     // 4
                                    pixelsWide,
                                    pixelsHigh,
                                    8,      // bits per component
                                    bitmapBytesPerRow,
                                    colorSpace,
                                    kCGImageAlphaPremultipliedLast);
    if (context== NULL)
    {
        free (bitmapData);                                          // 5
        fprintf (stderr, "Context not created!");
        return NULL;
    }

    CGColorSpaceRelease( colorSpace );                              // 6
    return context;                                                 // 7
}

警告说:'kCGColorSpaceGenericRGB' is deprecated.

这是否意味着colorSpace 是不可更改的?如果这是真的,我们将无法使用colorSpace 更改任何图像的颜色数据。那么如何处理图像呢?

【问题讨论】:

    标签: iphone cocoa image colors core-graphics


    【解决方案1】:

    不推荐使用通用颜色空间。而是尝试;

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    【讨论】:

      猜你喜欢
      • 2011-03-04
      • 1970-01-01
      • 2011-04-01
      • 2019-11-05
      • 2014-02-12
      • 1970-01-01
      • 2022-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多