午後わてんのブログ

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

自作アプリ

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

今回のアプリのダウンロード先 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…

処理中に進捗率表示とキャンセルボタンで中止はasync、await、Task.Run、Progress、CancellationTokenSource

時間のかかる処理中に 進捗率を表示 キャンセルボタンで処理中止 いつもどおりよくわかっていないけどできた!のでメモしとく github.com 進捗率表示更新は WPF/Windowsフォーム:時間のかかる処理をバックグラウンドで実行するには?(async/await編)[C…

Owner指定するタイミング、別WindowとMainWindowとの連携、カラーピッカーを追加してパレットの色変更

カラーピッカーを追加してパレットの色を変更できるようにした。 ダウンロード先 github.com 別のWindowとMainWindowとの連携する場合に、Ownerの指定するタイミングを間違えて、めんどくさいことになったはなし gogowaten.hatenablog.com パレットを使った…

カラーピッカーのdll(ライブラリ)作った、WPFユーザーコントロール

カラーピッカーのdll(ライブラリ)できた 見た目 これは以前の 2018/04/03 gogowaten.hatenablog.com これと gogowaten.hatenablog.com これと gogowaten.hatenablog.com これの組み合わせで作った 動き 数値指定はテキストボックス上のマウスホイール回転で1…

パレットを使った減色で誤差拡散

減色パレットで誤差拡散 ダウンロード先 github.com できた いつもの画像を 4色減色で 誤差拡散無し 誤差拡散あり 誤差拡散はFloydSteinberg式 8色 倍の色数になったけど大差ない見た目 8色 最多ピクセル数を分割Cubeに選択して グラデーションが得意なパレ…

処理速度比較、画像の使用色数を数える、重複なしのリストのHashSetも速いけど配列+ifも速かった

ダウンロード先 github.com 画像の使用色数を数える 画像ファイルからのBitmapSourceからCopyPixelsして取得するbyte[]を使って 重複しない色の配列やリストを作って数える方法で処理速度比較してみた 条件 BitmapSourceのPixelFormatはPbgra32限定、アルフ…

分割する場所の選択、メディアンカットで減色パレット作成

続き ダウンロード先 github.com Cubeをどこで分割するのかを4種類試した 辺中央 CubeのRGB3辺の中で一番長い辺を選択、辺の中央で分割 中央値 一番長い辺を選ぶのは↑と同じ、辺の要素の中央値で分割 最小分散p 分散値が最大の辺を選択、分割後の2辺の分散が…

分割するCubeの選択、メディアンカットで減色パレット

おとといからの続き ダウンロード先 github.com 今回は分割するCubeの選択法を変えると パレットはどうなるのか試してみた 選択方法は5つ 最大長辺 最も長い辺(軸)を持つCubeを分割対象にする 最大ピクセル数 ピクセルが最も多いCube 最大体積 Cubeの体積が…

Cubeから色の選び方、メディアンカットで減色パレット

gogowaten.hatenablog.com 2週間前の続き ダウンロード先 github.com メディアンカット法で分割したCubeからの色の選び方いろいろ試してみた Pan1から6が選び方の違いで Pan1 Cubeにあるピクセルの平均色 Pan2 CubeのRGBそれぞれの中央値(メディアン) Pan3 C…

Parallelクラスを使ってもっと速く減色

昨日処理時間短縮の続き Parallelクラスを使ってもっと速く Parallelを使ってforを書くとそのループは並列処理される! なのでCPUコア数に比例して速度が上がるはず お店でいうと レジが1個だったのがたくさん増えた感じ 従業員(CPU)に余裕があれば可動する…

減色変換一覧表を使って処理時間を短縮してみた

昨日の手抜き法でパレット作成処理の時間は問題なくなったので次は 減色変換の処理時間を短縮 前の gogowaten.hatenablog.com 単純減色(ポスタライズ?)試してみた、WPFとC# ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ https://blogs.yahoo.co.j…

手抜きで時間を短縮、k平均法を使った減色パレットの作成

k平均法を使った減色パレットの作成時に手抜きをして処理時間短縮 手を抜くのは重要 どこまで手を抜いても気づかないかを確かめてみるアプリ作った、確かみてみろ! 手抜きの方法は簡単で調査するピクセル数に上限を付けるだけ 上の場合だと 手抜きパレット…

色の距離は難しい、いくつか試したけどわからなかった

色の距離 減色処理で指定したパレットの色に変換する時 パレットの中から一番近い色を探す必要がある パレットがこの3色の時 この色はどの色に近いのか 僕の目から見ると が一番近い こういう処理 今まではこの処理をRGBの値からユークリッド距離で行ってい…

指定色で減色+誤差拡散、減色結果を他のアプリと比較してみた

指定した色に減色する時に誤差拡散を使う この前はメディアンカット法を使って選んだ色をパレットの色にして その色を使って普通に減色していた 今回は誤差拡散も使って減色 いつもの画像を8色に減色 できた!…と思う これだけだと正解なのかわかんないので …

メディアンカット法で色の選択、減色してみた、難しい

メディアンカット法で減色してみた ダウンロード先 github.com 理解できていないから間違っているかも それでもいい結果が得られた いつもの元画像を8色へ いいねえ ピクセル数が最大のCubeを優先分割 もう一つが 長辺が最大のCubeを優先分割のパレット この…

k平均法で減色してみた、設定と結果と処理時間

減色用パレットをk平均法で作成 ダウンロード先 github.com 今までの単純減色だと使われない色が出てきてしまう RGB2階調で8色は 白、黒、赤、緑、青、黄色、水色、赤紫なので ■■■■■■■■ 赤や緑がない画像を変換すると 赤、緑、黄色、赤紫の4色は使われない …

単純減色と誤差拡散とディザリング

今回のアプリ ダウンロード先 ここの20180302_.zip github.com 前回の 単純減色に誤差拡散でディザリング gogowaten.hatenablog.com 単純減色(ポスタライズ?)試してみた、WPFとC# https://blogs.yahoo.co.jp/gogowaten/15388558.html これと gogowaten.hate…

HSVのグラデーションの画像を作成して保存するアプリ作ってみた

以前作ったHSVとRGBの相互変換のdllを使って HSVのグラデーションの画像を作成して保存するアプリ作ってみた ダウンロード先 github.com 動作 修正する2018/03/03以前なので色相360が無彩色になっている 色相90の画像 こういう画像を作成するときは 色相を90…

誤差拡散法を使ってディザリング、右隣だけへの誤差拡散、グレースケール画像だけ

誤差拡散法を使ってディザリング その中でも一番単純なもの 誤差を右隣のピクセルに拡散させるもの さらにかんたんにするためにグレースケールの画像を使って試した アプリダウンロード先 github.co ここの20180221_.zipがそれ これが元画像 変換結果 閾値は…

WPF、画像をディザパターンを使って8色に減色して保存するアプリ

ディザパターンを使って8色に減色 8色は白、黒、赤、緑、青、黄色、水色、赤紫で固定 元の画像 前回はディザパターンなしで変換 こうだったのが 2x2のディザパターンを使うと 同じ8色でも再現度が上がる 何よりかっこいい 同じように4x4のパターン かっこい…

WPF、変形後の要素(Thumb)の頂点をマウスドラッグで最寄りのグリッド頂点にスナップ

前回からの続きで、今回ので満足できるところまでできた 変形後の要素の4頂点をグリッド頂点にスナップ 動作の様子 変形(20度回転)後の要素の四隅の頂点を順番にを100,100の位置にスナップ移動させている できたなあ 一年前に失敗したのと同じ考え方なんだ…

WPF、変形後の要素の4辺をグリッドスナップしながらドラッグ移動

前回からの続きで 今回の目的は 変形した要素がピッタリ収まる四角枠の4辺をグリッドスナップするマウスドラッグ移動 今回のアプリのダウンロード先 github.com コードは github.com 青枠がぴったり枠で水色罫線がグリッド どんな処理をすればいいのかエクセ…

WPF、変形後の要素(Thumb)のグリッドスナップ移動

gogowaten.hatenablog.com 前回で要素の変形後の位置とサイズを取得できるようになったので、それを使って目的だった変形後のグリッドスナップ移動ができるようなった 今回のアプリのダウンロード先 github.com コードは github.com グリッドスナップ移動 橙…