Gostaria de criar uma UIImage 1x1 dinamicamente com base em um UIColor.
Suspeito que isso possa ser feito rapidamente com o Quartz2d, e estou analisando a documentação tentando entender os fundamentos. No entanto, parece que existem muitas armadilhas em potencial: não identificar o número de bits e bytes por itens corretamente, não especificar os sinalizadores corretos, não liberar dados não utilizados etc.
Como isso pode ser feito com segurança com o Quartz 2d (ou outra maneira mais simples)?
ios
uiimage
core-graphics
quartz-graphics
Ian Terrell
fonte
fonte
[UIImage imageWithColor: [UIColor redColor]]
.const CGFloat alpha = CGColorGetAlpha(color.CGColor); const BOOL opaque = alpha == 1; UIGraphicsBeginImageContextWithOptions(size, opaque, 0);
UIGraphicsGetCurrentContext()
retornandonil
? Edit : Eu entendi, eu estava passando0
para orect
'swidth
.Aqui está outra opção baseada no código de Matt Stephen. Ele cria uma imagem em cores sólidas redimensionável, de forma que você possa reutilizá-la ou alterar seu tamanho (por exemplo, usá-la como pano de fundo).
Coloque-o em uma categoria UIImage e altere o prefixo.
fonte
Eu usei a resposta de Matt Steven muitas vezes, então fiz uma categoria para ela:
fonte
Usando o UIGraphicsImageRenderer mais recente da Apple, o código é bem pequeno:
fonte
Para mim, um iniciante de conveniência se sente melhor em Swift.
fonte
Ok, isso não será exatamente o que você deseja, mas esse código traçará uma linha. Você pode adaptá-lo para fazer uma observação. Ou pelo menos obtenha algumas informações.
Tornar a imagem 1x1 parece um pouco estranha. Traçados percorrem a linha, portanto, um traçado de largura 1,0 a 0,5 deve funcionar. Apenas brinque.
fonte