Я хотел бы динамически создать 1x1 UIImage на основе UIColor.
Я подозреваю, что это можно быстро сделать с помощью Quartz2d, и я изучаю документацию, пытаясь понять основы. Однако похоже, что существует множество потенциальных ловушек: неправильное определение количества бит и байтов для каждого объекта, неправильное указание флагов, невыполнение неиспользуемых данных и т. Д.
Как это можно безопасно сделать с помощью Quartz 2d (или другим более простым способом)?
ios
uiimage
core-graphics
quartz-graphics
Ян Террелл
источник
источник
[UIImage imageWithColor: [UIColor redColor]]
.const CGFloat alpha = CGColorGetAlpha(color.CGColor); const BOOL opaque = alpha == 1; UIGraphicsBeginImageContextWithOptions(size, opaque, 0);
UIGraphicsGetCurrentContext()
возвращаетсяnil
? Edit : Я получил его, я проходил0
наrect
«сwidth
.Вот еще один вариант, основанный на коде Мэтта Стивена. Он создает однотонное изображение с изменяемым размером, так что вы можете повторно использовать его или изменить его размер (например, использовать его для фона).
Поместите его в категорию UIImage и измените префикс.
источник
Я много раз использовал ответ Мэтта Стивена, поэтому сделал для него категорию:
источник
Используя последний UIGraphicsImageRenderer от Apple, код довольно небольшой:
источник
Мне кажется, что в Swift удобнее использовать init.
источник
Хорошо, это будет не совсем то, что вы хотите, но этот код проведет линию. Вы можете адаптировать его, чтобы подчеркнуть свою точку зрения. Или, по крайней мере, получить от него немного информации.
Создание изображения 1x1 кажется немного странным. Обводки идут по линии, поэтому подойдет обводка шириной 1,0 и 0,5. Просто поиграйте.
источник