色相環画像作成、WriteableBitmapとImage.Clip
一番右のが目的の色相環
いきなりImage4の画像を作成しようとしても難しくてできなかったのでImage2を作って、あとはImageクラスのClipプロパティにEllipseGeometryを指定して切り抜いて作成した
デザイン画面
MainWindow.xaml.cs
ピクセルの色の決定
ラジアンを角度に変換、角度はそのまま色相になるのであとは
色相をColor型に変換すればその位置のピクセルの色が決まる
画像サイズが100x100のとき中心位置は50,50
決まり手:エクセル方眼紙+セル内改行
Atan2(50,50) = 0.785398、角度に変換すると
Degrees(0.785398) = 45°、これが色相になる
彩度と明度は最大値にしたHSVをColorに変換すると
HSV(45,100%,100%) = RGB(255,191,0)
これで
四角い色相環ができるので次は切り抜いて丸くする
Sourceに色相環の画像を指定したMyImage3、24行目
ImageクラスのClipプロパティにEllipseGeometryで円に切り抜き、29行目
たったこれだけで
自動でアンチエイリアスもかかるから切り抜きの境界もなめらか
元の四角形からは合計2つのEllipseGeometryを使うので
PathGeometryを作って、そこにAddGeometryを使って
2つのEllipseGeometryを追加したものを
Image.Clipにしていする
これで
目的の色相環になった
2つ目のEllipseGeometryの大きさを40から30に小さくすると
取り除かれる円が小さくなって、そのぶん太くなる
意外に手軽にできるねえ
彩度の変化をつけてみた
中心彩度0、外側彩度100になっているはず
今回もできてみればラクなんだけど
最初はなんか楽な方法はないかなあってググったけど難しいのしか見つからなくて
思いついたのがグラデーションのPenやBrushを使って作ろうって
それぞれにグラデーションのBrushを作成して塗ってみたけど
うまくできなかった
それっぽく見えるけど違う
Brushは直線のグラデーションしかできないので
円に沿ったグラデーションには向かない
他に方法が思いつかなかったので、めんどくさそうな方法だけど、1ピクセルごとの位置から計算して塗っていくわって試してみたら意外にあっさりできた
画像の切り抜きも意外に簡単だった
DLLの参照とギットハブ
この参照に追加したDLLがギットハブではどういう扱いになるのかよくわからん
見た感じだとどこにもDLLのファイルが見つからない
プロジェクトに「既存の項目を追加」からDLLを追加して、それを参照に追加とかすればいいんかなあ
参照したところ
Clipping or Cropping Images in WPF
https://www.c-sharpcorner.com/uploadfile/mahesh/clipping-or-cropping-images-in-wpf/
C#で画像を描いてみた(WPFでWritableBitmap編)
https://water2litter.net/gin/?p=984
ギットハブ
HSV.dll
HSV.zip(ヤフーボックス)
関連記事
2019/04/02は1週間後
切り抜きClip、GeometryGroupとCombinedGeometry ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15921152.html
2019/04/01は1週間後
画像の色相の状態をレーダーチャートふうに表示してみた ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15920156.html
2019/04/04は10日後
画像の色相を円形ヒストグラム、扇形(パイ型)グラフで表示するアプリできた ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15923169.html
2018/2/18は1ヶ月前
dllファイル(クラスライブラリ.NET framework)の作り方と使うまでの手順メモ ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15377219.html
2018/2/20は1ヶ月前
WPF、Color(RGB)とHSVを相互変換するdll作ってみた、オブジェクトブラウザ使ってみた ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15380324.html
2019/3/1は3週間前
画像で使われている色を3D散布図で表示してみた、Pythonとmatplotlibすごい ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/15887088.html