Làm cách nào để tạo một màu NSC từ giá trị RGB?Tạo màu NSC với giá trị RGB
Trả lời
mỗi tài liệu NSColor:
NSColor *myColor = [NSColor colorWithCalibratedRed:redValue green:greenValue blue:blueValue alpha:1.0f];
float red = 0.5f;
float green = 0.2f;
float blue = 0.4f;
float alpha = 0.8f;
NSColor *rgb = [NSColor colorWithDeviceRed:red green:green blue:blue alpha:alpha];
Cũng đừng quên để làm việc chuyển đổi sau đây từ các giá trị RGB thực tế bạn nhận được, cho phép nói từ Photoshop ...
một RGB (226, 226, 226) có thể được khởi tạo dưới dạng màu NSC sử dụng các giá trị:
Red: 226/255 = 0.886...
Green: 226/255 = 0.886...
Blue: 226/255 = 0.886...
[NSColor colorWithDeviceRed:0.886f green:0.886f blue:0.886f alpha:1.0f];
Tại sao 255? Các kênh màu 8 bit nằm trong khoảng từ 0 đến 255 (bao gồm). Khi chuẩn hóa, giá trị này được chia tỷ lệ thành phạm vi [0,1] (bao gồm). Xem tham chiếu cho các chuyển đổi từ các giá trị được chuẩn hóa sang các giá trị không chuẩn hóa và ngược lại.
Tài liệu tham khảo
- OpenGL ES Full Specification, Xem Bảng 2.7 trên trang 38
- Unreal Engine Color Conversion
Điều này có thể hiển nhiên đối với mọi người khác, nhưng tại sao lại là +1? Có phải chỉ vì 256 là một số đẹp hơn để chia với, nhiều yếu tố hơn, do đó ít làm tròn lỗi/dấu thập phân? –
Câu trả lời này hơi sai. Giá trị thành phần màu RGB 8 bit nằm trong khoảng từ 0 đến 255, tổng cộng là 256 giá trị. Do đó, cách chính xác để ánh xạ tới các giá trị RGB nằm trong khoảng từ 0 đến 1 là chia cho 255, tức là: 'red = 226/255'. Việc thêm cái nhìn lúng túng 1 và chia cho 256 cho kết quả rất giống nhưng hơi sai, bạn có thể xác minh bằng cách xem xét điều gì sẽ xảy ra nếu một thành phần màu là 0: 0 chia cho 255 vẫn bằng 0, nhưng '(0 + 1)/256'> 0. – davidf2281
Extension for Swift 2
extension NSObject {
func RGB(r:CGFloat, g:CGFloat, b:CGFloat, alpha:CGFloat? = 1) -> NSColor {
return NSColor(red: r/255, green: g/255, blue: b/255, alpha: alpha!)
}
}
Sau đó, chỉ cần gọi
RGB(r: 16, g: 105, b: 125)
hoặc
RGB(r: 16, g: 105, b: 125, alpha: 0.5)
Tại sao tạo phần mở rộng của NSObject chứ không phải của NSColor? – ColdGrub1384
Tôi thích viết RGB (... – emreoktem
nhưng nếu bạn tạo phần mở rộng của NSObject, bạn cần gọi hàm này như sau: NSObject().RGB (_ :, g :, b :) hoặc bất kỳ phân lớp NSObject nào – ColdGrub1384
- 1. Giá trị màu jquery css trả về RGB?
- 2. Chuyển đổi giá trị màu nguyên sang RGB
- 3. Cách tính giá trị màu rgb trung bình của bitmap
- 4. Cách chuẩn hóa giá trị RGB với giá trị RGB tham chiếu
- 5. cách chuyển đổi giá trị màu RGB thành giá trị thập lục phân trong C++?
- 6. Làm thế nào để gán giá trị màu RGB để lưới điện lưới với matplotlib
- 7. HBRUSH đến giá trị RGB
- 8. Cách chuyển đổi màu chuỗi thành mã hex hoặc giá trị RGB của nó?
- 9. Đặt giá trị RGB cho văn bản nhãn
- 10. Giá trị RGB của màu nhấn mặc định trong Windows Phone 7 là gì?
- 11. Nhận giá trị RGB từ các giá trị đặt sẵn UIColor
- 12. setBackground (màu mới()); trong java không hiểu giá trị RGB đã cho
- 13. Excel: Set màu nền của tế bào để giá trị rgb dữ liệu trong tế bào
- 14. Làm cách nào để viết giá trị màu RGB trong JavaScript?
- 15. Làm thế nào để sử dụng giá trị RGB riêng để thay đổi Màu Nút Winform?
- 16. Cách khởi tạo UIColor từ các giá trị RGB đúng cách?
- 17. PHP tạo RGB
- 18. Đỉnh màu Jung với giá trị
- 19. giá trị rgb 0 đến 1 tỷ lệ
- 20. Làm mờ LED RGB RGB từ màu này sang màu khác?
- 21. Chuyển đổi giá trị RGB thành Số nguyên
- 22. Biểu thức chính quy Javascript cho giá trị rgb
- 23. Làm thế nào để có được tên của màu sắc trong khi có giá trị RGB của nó trong C#?
- 24. Bộ chọn màu RGB cho Rails 3
- 25. PHP - lấy tên màu từ rgb
- 26. In nhiều hơn các giá trị màu ANSI trong Perl
- 27. Chuyển đổi RGBA bằng màu cơ bản thành RGB?
- 28. Làm thế nào để thực hiện nội suy Bilinear trên các giá trị RGB?
- 29. Chuyển đổi chuỗi màu hex thành màu RGB
- 30. Thiết Powershell màu sắc với các giá trị hex trong hồ sơ kịch bản
Bạn nên sử dụng 1.0f thay vì 1.0, như 1.0 là một đôi, mà không phải là một loại bản địa dành cho iPhone. – nash
Bạn đúng - những nguy hiểm của việc nhập mã nhanh chóng! –
Điều này có thể làm cho nó rõ ràng rằng các giá trị màu sắc là từ 0,0 đến 1,0. Ngoài ra, phiên bản "được hiệu chỉnh" thực sự nhiều khả năng là biến thể chính xác của phương pháp này để sử dụng. Bạn muốn sử dụng NSCalibratedRGBColorSpace (tương ứng với [NSColorSpace genericRGBColorSpace]) trong tất cả các giao dịch nội bộ có màu. Và chỉ sử dụng các biến thể không gian màu "thiết bị" khi xuất ra một thiết bị cụ thể đã biết. – Kelan