Изображение из цветной проблемы

я использую метод ниже:

+ (UIImage *)imageWithColor:(UIColor *)color {
    CGRect rect = CGRectMake(0, 0, 1, 1);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

по ссылке . Моя проблема в том, что возвращаемое изображение не имеет того же цвета в параметре.


person Tekaya Marouene    schedule 29.01.2015    source источник
comment
Можете ли вы объяснить немного больше, возвращаемое изображение не имеет того же цвета в параметре?   -  person Miknash    schedule 29.01.2015
comment
stackoverflow.com/ вопросы/14292212/   -  person lakesh    schedule 29.01.2015
comment
например, входной цвет — [UIColor colorWithRed:219./255. зеленый: 94./255. синий: 8./255. альфа:1.] возвращенное изображение имеет код R:208 G:73 B:12   -  person Tekaya Marouene    schedule 29.01.2015
comment
Как вы проверяете, что это не тот цвет?   -  person Lyndsey Scott    schedule 29.01.2015
comment
Я проверил это с помощью приложения колориметра в mac os, и разница заметна без него.   -  person Tekaya Marouene    schedule 29.01.2015


Ответы (1)


Я решил свою проблему, заменив CGContextSetFillColorWithColor(context, [color CGColor]); на [color setFill];, новый метод будет похож на код ниже:

+ (UIImage *)imageFromColor:(UIColor *)color {
    CGRect rect = CGRectMake(0, 0, 1, 1);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [color setFill];
    CGContextFillRect(context, rect);
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
} 
person Tekaya Marouene    schedule 29.01.2015