Как создать цветное 1x1 UIImage на iPhone динамично?

Используете ли вы компанию для размещения своего сайта?

Поскольку в вашем c panel у вас должен быть значок, который называется cron jobs, вы можете указать ему, какой сценарий выполнять и когда.

115
задан Bob Gilmore 21 May 2019 в 14:45
поделиться

2 ответа

Вы можете использовать CGContextSetFillColorWithColor и CGContextFillRect для этого:

Swift

extension UIImage {
    class func image(with color: UIColor) -> UIImage {
        let rect = CGRectMake(0.0, 0.0, 1.0, 1.0)
        UIGraphicsBeginImageContext(rect.size)
        let context = UIGraphicsGetCurrentContext()

        CGContextSetFillColorWithColor(context, color.CGColor)
        CGContextFillRect(context, rect)

        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return image
    }
}

Swift3

extension UIImage {
    class func image(with color: UIColor) -> UIImage {
        let rect = CGRect(origin: CGPoint(x: 0, y:0), size: CGSize(width: 1, height: 1))
        UIGraphicsBeginImageContext(rect.size)
        let context = UIGraphicsGetCurrentContext()!

        context.setFillColor(color.cgColor)
        context.fill(rect)

        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return image!
    }
}

Objective-C

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

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

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

    return image;
}
327
ответ дан 24 November 2019 в 02:19
поделиться

Хорошо, это будет не совсем то, что вам нужно, но этот код проведет линию. Вы можете адаптировать его, чтобы подчеркнуть свою точку зрения. Или, по крайней мере, получить от него немного информации.

Создание изображения 1x1 кажется немного странным. Обводки идут по линии, поэтому подойдет обводка шириной 1,0 и 0,5. Просто поиграйте.

- (void)drawLine{

UIGraphicsBeginImageContext(CGSizeMake(320,300));

CGContextRef ctx = UIGraphicsGetCurrentContext();

float x = 0;
float xEnd = 320;
float y = 300;

CGContextClearRect(ctx, CGRectMake(5, 45, 320, 300));

CGContextSetGrayStrokeColor(ctx, 1.0, 1.0);

CGContextSetLineWidth(ctx, 1);
CGPoint line[2] = { CGPointMake(x,y), CGPointMake(xEnd, y) };

CGContextStrokeLineSegments(ctx, line, 2);

UIImage *theImage=UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}
-6
ответ дан 24 November 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: