2011-09-29 50 views
5

tôi hiện đang làm việc với thư viện GD trên PHP và tôi đang cố gắng lấy tên màu pixel, ý tôi là: xanh lục, đỏ, xanh dương, v.v ...PHP - lấy tên màu từ rgb

Tôi là nhận được màu sắc theo cách này:

$rgb = ImageColorAt($image, $X, $y); 
$r = ($rgb >> 16) & 0xFF ; 
$g = ($rgb >> 8) & 0xFF; 
$b = $rgb & 0xFF; 

bây giờ, làm thế nào tôi có thể tìm thấy nó màu này là ánh sáng màu xanh lá cây, màu xanh đậm, bình thường màu xanh hoặc đỏ và vv ..

+1

Tên màu bạn cung cấp, chúng thuộc về bảng màu nào? Họ có định nghĩa ở đâu đó không? – hakre

Trả lời

4

bạn phải tạo một mảng liên kết ánh xạ giá trị => colorname (hoặc nghịch đảo). điền vào mảng này với dữ liệu của bảng này: http://en.wikipedia.org/wiki/Web_colors

sau đó bạn có thể tra cứu tên màu, cũng có sẵn trong CSS. ngoài ra, bạn có thể thêm nhiều hơn, riêng, tên màu

+1

Xin vui lòng không tham khảo w3school, đó là một nguồn tài nguyên khủng khiếp, lý do có thể được tìm thấy @ lin Marc B cung cấp. – sg3s

+1

tôi không biết điều này. một trong những giáo sư của trường đại học của tôi cũng tham khảo w3schools ... sửa chữa – 0xDEADBEEF

2

bạn có nghĩ rằng mỗi màu có riêng của mình Tên?
Đó là 16^6> 16,7 triệu.

Vì vậy, có vẻ như không thể.
Nhưng bạn có thể tạo cơ sở dữ liệu của riêng mình (định dạng rgb => có thể đọc được)

+0

vì vậy - 1 hình ảnh 10.000 pixel = 10.000 truy vấn? tôi không nghĩ vậy! nhưng cảm ơn. –

+1

@Mor Sela: RiaD đề cập đến 16,7 triệu tên màu. Bạn chỉ có tên là bốn và bạn thậm chí không đưa ra URL của danh sách đó. – hakre

+0

Tôi nghĩ bạn không có 10.000 màu khác nhau trong mỗi trang nếu bạn cần đặt tên cho nó. Vì vậy, bạn có thể nhóm pixedl theo màu. Bên cạnh đó, bạn có thể thử nhóm nó bằng ví dụ chỉ chữ số đầu tiên cho mỗi thành phần. Tôi là 00-0F, 10-1F – RiaD

Các vấn đề liên quan