午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

WPF

以前イベントで処理していたのをBindingにしてC#とXAMLで書いてみた

イベントで処理していたのをBindingに変更してC#とXAMLの両方で書いてみたけど どっちがいいのかよくわからん 動作自体は前のときと同じ Sliderの変更で画像の表示倍率を変更、画面より大きくなったらスクロールバーを表示 配置 Slider 拡大率指定用 ScrollV…

WPFのListBoxでいろいろ、Binding、見た目の変更、横リスト

ListBoxでのデータバインディングと見た目の変更とか 横表示は ListBox.ItemsPanel ItemsPanelTemplate StackPanel Orientation="Horizontal" リストに表示される要素の見た目の変更は ListBox.ItemTemplate DataTemplate StackPanel Border TextBlock /Stac…

WPF?画面上のどこでもマウスカーソル下の色を取得

画面上のどこでもマウスカーソル下の色を取得 クリックでもその色を取得 今回のアプリのダウンロード先 github.com 自身のウィンドウ内のカーソルの位置や色の取得ならWPFにも用意されているんだけど、自身のウィンドウ外、画面上のどこでもって場合にはWPF…

画像で使われている色を3D散布図で表示してみた、Pythonとmatplotlibすごい

画像で使われているすべての色を表示するのは処理が重すぎたので、等間隔で色を取得 この画像で使われている100ピクセル分の色を3D散布図で表示してみた 使ったアプリと言語は Visual Studio 2017とPythonとmatplotlib Pythonは初めて使ったので初投稿です P…

任意の2色に減色するときディザリングパターンを使う

任意の2色に減色するときディザリングパターンを使う 元画像のピクセルの色が 元のRGB=(50, 140, 200)で 減色用パレットから元の色に近い色を2色選んだら 色1RGB=(77, 159, 166) 色2RGB=(68, 72, 212) だったとき 2x2のディザリングパターンを使ってどうなれ…

カラー画像を1bpp(1bit)白黒画像に変換アプリver1.1、閾値の自動設定、大津の二値化でできたかも

大津の二値化を使った白黒画像できたかも 今回のアプリのダウンロード先 github.com 1年前に作った カラー画像を1bppの白黒2値化するアプリは 白黒の閾値は手動で設定か、画像全体の輝度平均で指定していたのを 自動で設定する、自動1と自動2を付け足した …

WPF、Parallel.Invoke、並列実行は昨日より速く

昨日の続き 目的は昨日と同じで画像処理を考えて、RGB順に並んだbyte型配列から、RGBそれぞれの配列を作成、それぞれの最小値、最大値、平均値(double型)を求める 結果 一番上が昨日、一番下が今回最速で 昨日より2倍くらい速くできた 今回のアプリのダウン…

WPF色一覧表示してHSVで並べ替えするアプリできた

WPF色一覧表示と並べ替え System.Windows.Media.Colorの中の色一覧を表示 並べ替えは 色の名前順(昇順ソート) H:色相(昇順ソート) S:彩度(昇順ソート) V:明度(降順ソート) YUVのY:輝度(降順ソート) 一覧マスをクリックで色の詳細表示と見本枠の背景色変…

WPF、ScrollViewerの中の要素をマウスドラッグ移動しているように見せかける

サイズが1024x768画像をScrollViewerの中に置いたImageに表示して マウスドラッグ移動で画像の表示位置を変更 画像を動かしているように見えるけど 実際に動かしているのはスクロールバー 今回のアプリのダウンロード先 github.com デザイン画面 ScrollViewe…

WPF、スクロールバーの同期、2つの画像を並べて拡大して見比べたい、ScrollViewer

同じ大きさの2つの画像を並べて拡大して見比べたい 右画像は左を16色に減色したもの 今回のアプリのダウンロード先 github.com デザイン画面 <feff></feff>

WPF、マウスドラッグ移動でなめらかな曲線を描画、PolyBezierSegment

マウスドラッグ移動(右クリック)でベジェ曲線 できた! 4ヶ月前の2018/6/24のときには こうだったからだいぶ良くなった 夏が春くらいの暑さならもっと良かったんだけどねえ 線の端を丸める これは単にPathの設定を変えただけで 764行目からの3行でそれぞれ …

WPF、ベジェ曲線、違和感なく滑らかになるような制御点座標はどこ?その3(終)

前回で方向線角度を求めることができたので 距離を与えてベジェ曲線を表示してみる 距離の決め方は前々回と同じ感じで A0:方向線距離(長さ)0は直線 A1:前後アンカー点間距離の0.3倍 C1:前後アンカー点距離平均の0.3倍 C2:前後アンカー点距離それぞれの0.…

WPF、ベジェ曲線、違和感なく滑らかになるような制御点座標はどこ?その2、アプリでの角度とラジアン、座標から角度

VBやC#だと便利な三角関数が用意されているけど、角度じゃなくてラジアンが基本になる ラジアンは日本語だと弧度っていうらしい 角度とラジアン 角度の180度はラジアンだと3.14、パイだと1パイ(π) ラジアンを角度に変換する ラジアン/パイ*180 = 角度 アプリ…

WPF、ベジェ曲線、違和感なく滑らかになるような制御点座標はどこ?その1

今回のアプリのダウンロード先 github.com 指定した点を通る違和感のない滑らかなベジェ曲線を引きたい 今まで gogowaten.hatenablog.com マウスクリックでCanvasにベジェ曲線で曲線、PolyBezierSegment ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブロ…

マウスドラッグ(移動)で線を描画、CanvasにPolyline

前回まではクリックしたところを線を中継する頂点にして線を描いていたけど これをマウスの動いたとおりの線を描いてみたくなった エクセルの図形のフリーハンドみたいなの WPFには似たことができるInkCanvasっていう、パネルコントロールがあるんだけど、使…

Polyline折れ線からベジェ曲線作成と曲げ具合

今回のアプリのダウンロード先 github.com Polylineの折れ線からベジェ曲線 このPolylineを使って描いた折れ線から このベジェ曲線を作成 C#コード using System.Windows; using System.Windows.Media; namespace _20180623_折れ線をベジェ曲線に { public p…

WPFで矢印曲線、ベジェ曲線(Path)と矢印(Polygon)を組み合わせて表現、PolyBezierSegment

今回のアプリのダウンロード先 github.com ベジェ曲線に矢印 クリックしたところをアンカーポイントにしてベジェ曲線の終端に矢印 昨日は直線だったのをベジェ曲線にしてみた デザイン画面 C#のコード using System; using System.Collections.Generic; usin…

WPFで矢印線、直線(PolyLine)と矢印(Polygon)を組み合わせて表現

今回のアプリのダウンロード先 github.com 矢印線の描画 直線部分になるPolyLineと矢印になるPolygon、2つを組み合わせて表現 クリックしたところを中継点にする直線の矢印線を描画 WPFには矢印がない 線を描画するコントロールのPolyLineやLineには線の開始…

ベジェ曲線の長さ測定できた、C#とWPF

4日前 gogowaten.hatenablog.com の続きで今度は曲線Pathの長さを測る GetFlattenedPathGeometryとGetPointAtFractionLengthを使って測る 今回のアプリのダウンロード先 github.com 半径50の円周で確認 円周は2*パイ*半径なので 2*3.14*50=314になればいい …

GetPointAtFractionLengthで分割した座標からのPathの長さ測定の確認

今回のアプリのダウンロード先 github.com 昨日の続きで直線Pathの長さ測定 GetPointAtFractionLengthを使ってPathを等分割できたので、2点間の距離を測るユークリッド距離を使って長さを求める 普通ならこんな面倒なことしなくても、元の直線の座標から計算…

Pathを等分したところに印と角度を表示してみた、GetPointAtFractionLength

PathGeometryクラスのGetPointAtFractionLengthを使って Pathを等分したところに印と角度を表示してみた 今回のアプリのダウンロード先 github.com GetPointAtFractionLength うーん、よくわからん…Fraction(分数) 第1引数のprogressに渡すのは0から1の数値…

曲線Pathを近似の直線PathにするGetFlattenedPathGeometry使ってみた

GetFlattenedPathGeometryメソッドを使って曲線のPathGeometryから直線のPathGeometryを取得 GetFlattenedPathGeometry(tolerance, ToleranceType) Tolerance:公差、許容できる誤差をdouble型で指定 ToleranceType:Absolute絶対 or Relative相対のどちらか…

ベジェ曲線の方向線とアンカーポイント、制御点を表示してみた

今回のアプリのダウンロード先 github.com ベジェ曲線のアンカーポイントと制御点と方向線を表示してみた アンカーポイントと制御点を結ぶ直線のことを方向線っていうみたい 青丸がアンカーポイントと制御点、細い赤線が方向線 どちらもPathコントロールを使…

マウスクリックでCanvasにベジェ曲線で曲線、PolyBezierSegment

ベジェ曲線で曲線 System.Windows.Media.PolyBezierSegment Path.Dataの PathGeometryの FigureのSegmentに PolyBezierSegmentを指定してベジェ曲線 ってのはおとといのベジェ曲線で直線と同じ方法で、制御点座標を調整するようにして曲線にする 今回のアプ…

マウスクリックでCanvasに直線を描画その3、ベジェ曲線で直線、PolyBezierSegment

System.Windows.Media.PolyBezierSegment PolyBezierSegmentを使って連続した直線を描画してみた 本当はベジェ曲線を描くのに使うんだけど直線も描けた 今回のアプリのダウンロード先 github.com 見た目的な結果は前々回や前回と全く同じ デザイン画面 前回…

マウスクリックでCanvasに直線を描画その2、Polyline、WPFとC#

今回のアプリのダウンロード先 github.com 連続した直線を描画するにはPolyLine System.Windows.Shapes.Polyline これはおとといの gogowaten.hatenablog.com と全く同じ結果だけど使うコントロールは System.Windows.Shapes.Path から System.Windows.Shape…

マウスクリックでCanvasに直線を描画、Line、Path、WPFとC#

今回のアプリのダウンロード先 github.com System.Windows.Shapes.Line マウスクリックで直線(Line)を描画 3年前にWindowsFormとVBだったのをWPFとC#で試してみた クリックしたところを始点(X1,Y1)にして、カーソル位置を終点(X2,Y2)にしている デザイン画面…

WPFだけどRotateTransformを使わずに画像の回転表示をしてみた

今回のアプリのダウンロード先 github.com WPFだけどRotateTransformを使わずに画像の回転表示をしてみた 処理2 元のピクセル座標を回転行列で変換しただけ 処理3 処理2の位置調整版 処理4 回転後のピクセル座標を回転行列の逆行列で変換 処理5 処理4+ピク…

BitmapSourceでの画像処理速度、unsafe、ポインタ、ビルドモード

アプリダウンロード先 github.com WPFのBitmapSourceの画像処理速度向上するためにいろいろ試してみた 初めて使ったunsafeでポインタが一番効果があった 画像処理の内容は色の反転、RGBそれぞれの値を逆にするだけのもので 50だったら255-50=205にする 単純…

画像処理中のプログレスバー更新とキャンセルボタンで中止

テストアプリダウンロード先 github.com 時間のかかりがちな画像処理のときに プログレスバーの更新 処理のキャンセル 動作の様子 できた! 最初に作る時には前回の gogowaten.hatenablog.com 処理中に進捗率表示とキャンセルボタンで中止はasync、await、Ta…