Изображение от цветен брой

използвам метода по-долу:

+ (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. alpha: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