Công thức tìm ra kết quả của một màu sau khi áp dụng độ mờ x% cho nó?


9

Tôi có 2 màu

  1. #a1a2a4
  2. đen ( #000000)
  3. trắng ( #ffffff)

Bây giờ tôi cần biết tôi phải áp dụng độ mờ bao nhiêu (tính bằng phần trăm) cho màu thứ hai (màu đen) so với nền của màu thứ ba (màu trắng) để đạt được màu "gần nhất" (như được xác định bởi mắt) màu ( #a1a2a4).

Làm thế nào để tôi đi về làm điều đó?



Tôi hơi bối rối bởi cách diễn đạt của bạn: bạn muốn một graymàu gần nhất với màu được chỉ định, đúng không?
horatio

Câu trả lời:


6

Trường hợp này ít nhiều đơn giản (bạn đang xử lý đen trắng).

Sau khi áp dụng màu (# a1a2a4), hãy kiểm tra các mức RGB:

Cấp độ RGB

Bạn có thể thấy nó có xấp xỉ 162 (trung bình) và biết rằng nó có thể tăng từ 0 đến 255, bạn chỉ cần tìm ra phần trăm:

162 * 100/255 = ~ 63,5%

Bây giờ, do RGB hoạt động theo cách ngược lại so với CMYK (về cách trộn màu, nghĩa là phối màu đầy đủ có nghĩa là màu trắng và với phối màu đầy đủ CMYK có nghĩa là màu đen), phần trăm thực tế trong trường hợp này là chênh lệch giữa 100% và giá trị mà chúng tôi đã nhận được:

100 - 63,5 = 36,5%

Vì vậy, nếu bạn áp dụng 36% độ mờ, nó sẽ có màu này, tôi chỉ cần thử nó.

Tất nhiên trong trường hợp có màu phức tạp hơn, phương pháp này không hoạt động và tôi không biết cách lấy phần trăm, tôi sẽ thực hiện thử nghiệm và lỗi cổ điển.


4

Câu hỏi, nếu tôi hiểu đúng, là "Làm thế nào bạn sẽ tính toán điều này theo chương trình?" Đó là phép toán đơn giản để chuyển đổi "màu" mục tiêu của bạn thành giá trị alpha.

Trắng == [1,1,1] hoặc #ffffff hoặc 255,255,255, tùy thuộc vào ứng dụng của bạn. Đen == [0,0,0], v.v.

Vì vậy: bình thường hóa giá trị đích (trong trường hợp này là .6314), trừ đi 1 và áp dụng cho lớp màu đen dưới dạng giá trị alpha. Bạn có thể thực hiện một kênh này tại một thời điểm và lấy kết quả trung bình, nhưng tại sao phải bận tâm, vì màu của bạn không thể phân biệt (với mắt) từ màu xám trung tính # a1a1a1. (Mọi thứ trở nên phức tạp hơn nếu có màu sắc rõ ràng, vì các kênh sau đó sẽ có các giá trị khác nhau, nhưng áp dụng cùng một nguyên tắc.)


Đó là một số geekage nghiêm túc gợi cảm ngay đó. 8)
Lauren-Clear-Monica-Ipsum

3
Tại sao, cảm ơn bạn! <điều chỉnh bộ bảo vệ túi, đảm bảo các cây bút cách đều nhau>
Alan Gilbertson

0

Một biến thể nhanh hơn của thử nghiệm và lỗi:

Tạo màu hex của bạn trong Photoshop trong tài liệu CMYK và xem các giá trị CMYK. Tôi nhận được 39/32/31/1.

Tạo hai lớp, màu đen trên cùng và dưới cùng màu trắng.

Kéo cửa sổ Thông tin lên. Một cách riêng biệt, kéo lên cửa sổ Lớp.

Chơi với độ mờ đục của lớp màu đen. Sử dụng ống nhỏ mắt trên màu của bạn và kiểm tra trong cửa sổ thông tin để xem mức độ gần gũi của bạn. Điều này chủ yếu giúp bạn tiết kiệm thời gian thay đổi độ mờ - làm phẳng - kiểm tra màu - hoàn tác làm phẳng.


Bạn đúng, nhưng có một cách táo bạo hơn để làm điều đó. 8-D
Alan Gilbertson

0

Với màu nền trước và màu nền của bạn (giá trị đồng nhất trên các kênh R, G và B), bạn không thể đạt được màu không đồng nhất #a1a2a4bằng cách thay đổi độ mờ vì độ mờ ảnh hưởng đến tất cả các kênh cùng một lúc. Tuy nhiên, bạn có thể đạt được màu "đủ gần" #a1a1a1bằng cách đặt độ mờ của màu đen thành 0.37. Đây là công cụ mà tôi đã sử dụng:

http://colorizer.org/

  1. Nhấp vào "Nền" và đặt giá trị hex thành #fff
  2. Nhấp vào "Nút" và đặt giá trị hex thành #000
  3. Sử dụng tiện ích Eyedropper để tìm màu mục tiêu trên phổ "Alpha / Opacity", sau đó nhấp vào phổ để lấy giá trị độ mờ.

0

Tìm công thức này là một bài tập tuyệt vời trong đại số tuyến tính. Sử dụng RGB và đại số tuyến tính, tôi đã đưa ra ma trận M. Nếu bạn muốn kết hợp RGBred = (237,32,36) và RGBblue = (60,84,165) trong đó lớp dưới cùng có độ mờ 100% và lớp trên cùng là 50% độ mờ sau đó nhân Mv trong đó M là ma trận bên dưới và v = (237,32,36,60,84,165). Ta nhận được Mv = (157.777,71.444.107.444).

Giá trị thực tế là (159,71.103) nên chúng tôi khá gần nhưng có một số lỗi - có thể do tôi đã sử dụng các giá trị được làm tròn để tính M và / hoặc vì có lẽ nó không sử dụng RGB nhưng một số thang đo khác để tính toán độ trong suốt làm phẳng. Tôi có thể có được một ma trận chính xác hơn bằng cách sử dụng cách tiếp cận bình phương nhỏ nhất nhưng tôi quá lười biếng.

Ma trận MI có là

M=[-0.316438695251802233798084520470 -0.0205011495462359668020633451463 -0.627769626184202308338411657855 
    4.83088877248122926488562947487 -0.673109830626855247075257552051 0.137681159420289855072463768116]
[2.67597831835520455938498494132 0.215715090307662822540065922133 1.69848459052630338054958974280 -13.9750196437925615505500261925 
    3.20021608171817705605028810915 -0.370471014492753623188405797101]
[-6.62632375526968419148486246260 0.509833585674322977062528534400 -3.14436345482363613544439381045 35.0629474419416797625283743688
    -6.69242186135847738781211803779 1.41304347826086956521739130435]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.