Saya ingin membuat gambar UII 1x1 secara dinamis berdasarkan UIColor.
Saya menduga ini dapat dengan cepat dilakukan dengan Quartz2d, dan saya mempelajari dokumentasi mencoba untuk memahami fundamentalnya. Namun, sepertinya ada banyak potensi jebakan: tidak mengidentifikasi jumlah bit dan byte per hal dengan benar, tidak menentukan flag yang tepat, tidak merilis data yang tidak digunakan, dll.
Bagaimana ini bisa dilakukan dengan aman dengan Quartz 2d (atau cara lain yang lebih sederhana)?
ios
uiimage
core-graphics
quartz-graphics
Ian Terrell
sumber
sumber
[UIImage imageWithColor: [UIColor redColor]]
.const CGFloat alpha = CGColorGetAlpha(color.CGColor); const BOOL opaque = alpha == 1; UIGraphicsBeginImageContextWithOptions(size, opaque, 0);
UIGraphicsGetCurrentContext()
kembalinil
? Sunting : Saya mengerti, saya lulus0
untukrect
ituwidth
.Berikut opsi lain berdasarkan kode Matt Stephen. Ini menciptakan gambar warna solid yang dapat diubah ukurannya sehingga Anda dapat menggunakannya kembali atau mengubah ukurannya (misalnya menggunakannya untuk latar belakang).
Taruh di kategori UIImage dan ubah awalannya.
sumber
Saya menggunakan jawaban Matt Steven berkali-kali sehingga membuat kategori untuk itu:
sumber
Menggunakan UIGraphicsImageRenderer terbaru dari Apple, kodenya cukup kecil:
sumber
Bagi saya, kenyamanan di dalamnya terasa lebih rapi di Swift.
sumber
Oke, ini tidak akan persis seperti yang Anda inginkan, tetapi kode ini akan menarik garis. Anda dapat mengadaptasinya untuk membuat suatu poin. Atau setidaknya dapatkan sedikit info darinya.
Membuat gambar 1x1 tampak agak aneh. Pukulan naik pada garis, jadi guratan dengan lebar 1,0 pada 0,5 seharusnya berhasil. Main-main saja.
sumber