私は色がUIColor(displayP3Red: 1, green: 0, blue: 0.8, alpha: 1)
です。私は、同じ色相と明るさで、飽和度の低い、元の彩度の半分のような、この不飽和バージョンを作成します。これはどうすればいいですか?ディスプレイP3カラーの飽和表示を作成するにはどうすればよいですか?
1
A
答えて
0
extension UIColor {
// Calling this with 0.5 as argument returns a color whose saturation is 50% of that of the receiver.
func desaturatedBy(fraction: CGFloat) -> UIColor {
var hue: CGFloat = 0
var saturation: CGFloat = 0
var brightness: CGFloat = 0
var alpha: CGFloat = 0
let success = getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: &alpha)
assert(success)
saturation *= fraction
return UIColor(hue: hue, saturation: saturation, brightness: brightness, alpha: alpha)
}
}
これは動作番目ためgetterは拡張sRGBカラースペースでHSBを返し、UIColorのイニシャライザも拡張sRGBカラースペースでHSBをとります。したがって、色空間変換を行う必要はありません。
0
DCI-P3の正規化プライマリマトリックス(NPM)を計算することができれば簡単です。NPMの中央の行は輝度係数を表します。あなたはそのような何かを行うことができ、50%で不飽和化したい場合は、あなたの特定の色の輝度を表すYで
import numpy as np
import colour
# Computing the sRGB Luminance Equation, you should be familiar with the
# resulting Luminance factors.
print(colour.RGB_luminance_equation(
colour.sRGB_COLOURSPACE.primaries,
colour.sRGB_COLOURSPACE.whitepoint))
# Y = 0.212639005872(R) + 0.715168678768(G) + 0.0721923153607(B)
# Computing the DCI-P3 Luminance Equation.
print(colour.RGB_luminance_equation(
colour.DCI_P3_COLOURSPACE.primaries,
colour.DCI_P3_COLOURSPACE.whitepoint))
# Y = 0.209491677913(R) + 0.721595254161(G) + 0.0689130679262(B)
# Computing Luminance of given RGB colour, this is assuming it is representing linear values.
DCI_P3_LUMINANCE_FACTORS = np.array([0.209491677913, 0.721595254161, 0.0689130679262])
RGB = np.array([1.0, 0.0, 0.8])
Y = np.dot(RGB, DCI_P3_LUMINANCE_FACTORS)
print(Y)
# 0.264622132254
:私はそれはあなたが、リニアの値を使用していることを前提とし、Colourを使用してこのことを説明します:
lerp(RGB、[Y、Y、Y]、0.5)
関連する問題
- 1. カラーの通常の飽和光度値と異なるUIColor飽和輝度値
- 2. 作成したディスプレイでボタンプリントを作成するにはどうすればよいですか? (Tkinter)
- 3. 広い色域のカラー画像は、どのように通常のディスプレイに表示されますか?
- 4. ウィンドウ関数による飽和和を設計する
- 5. 2つのインタフェースの和集合から型を作成するにはどうすればよいですか?
- 6. カラーPNGファイルのグレースケールを作成するにはどうすればよいですか?
- 7. Androidの下から表示されるレイアウトを作成するにはどうすればよいですか?
- 8. プログラムで作成されたボタンにテキストを表示するにはどうすればよいですか?
- 9. 常に表示されるフッターを作成するにはどうすればよいですか?
- 10. Webカテゴリに表示されるVisual Studioプロジェクトテンプレートを作成するにはどうすればよいですか?
- 11. NotifyIconを表示するだけのWinFormアプリケーションを作成するにはどうすればよいですか?
- 12. タクソノミのノード数を表示するビューを作成するにはどうすればよいですか?
- 13. スワイプジェスチャーで写真を表示するギャラリーを作成するにはどうすればよいですか?
- 14. POVディスプレイにさまざまなメッセージを表示するにはどうすればいいですか?
- 15. ストアドプロシージャの作成を妨げるエラーを表示するにはどうすればよいですか?
- 16. ドロップダウンメニューを表示するボタンを作成するにはどうすればよいですか?
- 17. 受信したSMSを表示するguiを作成するにはどうすればよいですか?
- 18. AWSで組織内のインスタンスを作成して表示するにはどうすればよいですか?
- 19. Javaで乱数のarraylistを作成して表示するにはどうすればよいですか?
- 20. WPFウィンドウを個別のスレッドに作成して表示するにはどうすればよいですか?
- 21. 作成したすべてのファイルを一覧表示するにはどうすればよいですか?
- 22. ViewBagの表示クラスのプロパティを作成するにはどうすればよいですか?
- 23. ウェブサービスアプリの作成にはどうすればよいですか?
- 24. IKVM comで作成した.dllを表示するにはどうすればよいですか?
- 25. リンクリストで作成したデータを表示するにはどうすればよいですか?
- 26. qtアプリケーションを作成してdcmイメージを表示するにはどうすればよいですか?
- 27. VBScriptを使用して作成したテキストファイルを表示するにはどうすればよいですか?
- 28. EntityFrameworkが作成したデータベースを表示するにはどうすればよいですか?
- 29. タイムラインビューでカレンダーイベントを表示するアプリケーションを作成するにはどうすればいいですか?
- 30. 飽和と明るさのCSSフィルタのアルゴリズムは何ですか?
iOSでこれを行う方法はありますか?ありがとう。 –
本当に必要なのは、ドット積と線形補間を実行できることです。 –
ところで、Pythonは色がインポートカラーで見つからないというエラーを出力します。どのMacPortsモジュールをインストールする必要がありますか?私はPython 3.6を使用しています。それはあまりにもエラーを与えていたので、私はすでにnumpyをインストールしました。ありがとう。 –