午後わてんのブログ

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

WPF

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

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

WPF、普通の写真画像を8色に減色

カラー画像を8色に減色 8色は白、黒、赤、緑、青、黄、水色、赤紫(マゼンタ) ドラッグアンドドロップで開いた画像を8色に減色しているところ using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System…

WPF、ディザパターンを使った白黒2値化

ディザ、ディザリング 輝度が0から255までのグラデーションのグレースケールを 白黒2値化すると中間で白と黒に分かれるので 元の画像とはかなり違うものになる ディザリングを使うと 同じ白黒2値でも元の画像に近くなる なにより見た目がかっこいい!! 灰色…

カラー画像を1bpp(1bit)白黒画像に変換して保存するアプリのコード

この記事は gogowaten.hatenablog.com カラー画像を1bpp(1bit)白黒画像に変換して保存するアプリ作ってみた、しきい値は手動設定 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ https://blogs.yahoo.co.jp/gogowaten/15335812.html ↑の記事のアプリ…

カラー画像を1bpp(1bit)白黒画像に変換して保存するアプリ作ってみた、しきい値は手動設定

画像を白黒2値に変換して保存するアプリ 動作の様子 しきい値を変更しているところ 平均輝度のボタンで画像の平均輝度をしきい値に設定 ダウンロード先(ヤフーボックス) 画像を開くときはファイルをドラッグアンドドロップ 対応するのは普通の画像ファイルで…

WPF、カラー画像を白黒2値や2色の1bitビットマップ画像ファイルにしてみた

画像を白黒2値にして1bitのビットマップ形式のファイルに保存 PixelFormatはBlackWhite ついでPixelFormatがIndexed1(2色パレット)の1bitビットマップファイルも作成 いつものこの画像を 白黒2値に変換、PixelFormatはBlackWhite ヤフーブログはbmp画像の投…

WPF、wdp画像ファイル作成時の画質設定とファイルサイズ、WmpBitmapEncoder

WmpBitmapEncoderを使ってwdp形式の画像を作成 作成時の画質の設定を変化させたときのファイルサイズと結果画像を比べてみた WmpBitmapEncoder クラス (System.Windows.Media.Imaging) https://msdn.microsoft.com/ja-jp/library/system.windows.media.imagi…

WPF、Tiff画像の圧縮形式とファイルサイズ、TiffBitmapEncoderのCompress

今までは何も指定しないで作成していたけど圧縮(エンコード)方式をいくつか選べるみたいなので試してみた TiffBitmapEncoder.Compression プロパティに TiffCompressOption列挙型から選んで指定する TiffCompressOption 列挙型 (System.Windows.Media.Imagin…

WPF、画像ファイルを開く方法まとめ

Imageコントロールに表示するBitmapSourceを画像ファイルから作成するときに dpiを指定するか、元の画像ファイルのdpiに合わせるか選択したい PixelFormatを画像ファイルに正確に合わせるか環境に最適なものに変更するか選択したい PixelFormatを指定したも…

WPF、前回の64bppとかの画像ファイルを読み込んでPixelFormatを確認してみた

前回は画像のPixelFormatをいろいろ変更してファイルに保存した 正しく保存されていないのもあったけど、それは置いといて 今回はこのファイルを、いくつかの方法で読み込んで PixelFormatやbpp(ビットの深さ)を確認してみた この画像ファイルのビットの深さ…

WPF、PixelFormatを変更した画像をファイルに保存、FormatConvertedBitmap

PixelFormatを変更してファイルに保存 PixelFormatを変更している様子 コンボボックスからPixelFormatを選ぶと変更された画像に切り替わる Saveボタンを押すとファイルに保存する 保存形式はbmp、jpeg、gif、png、tiff、wdp ファイル名は元のファイル名+Pix…

WPF、dpiの変更とUseLayoutRoundingを指定して画像をくっきり表示

BitmapSourceのCreateメソッドでBitmapSourceを作成する時にdpiを指定できるのでこれを使う そのためには画像の色情報のbyte型配列が必要なのでこれを BitmapImageのCopyPixelsメソッドで作成 テストに使った画像は 携帯電話で撮った写真画像 72dpi、256x19…

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

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

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

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

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

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

WPF、変形した要素を指定位置に移動、NotifyProperty

要素を指定した位置に移動させる yyyy_20170629_131223.gif 水色の四角枠は目印、サイズ100x100、x,y=100,100 赤の四角が目的の要素、サイズ100x100 移動ボタン1と2どちらも100,100へ移動させるボタンだけど基準が違う 基準A:ボタン1は見た目上の位置 基準…

WPF、CanvasLeftTopとSliderValueをBinding

Canvasに表示したBorderの Canvas.LeftとCanvas.Topを SliderのValueにBinding VBのコードでBinding 今回のアプリのダウンロード先 github.com デザイン画面、XAML MainWindowのVBコード Class MainWindow '右へ10 Private Sub AddLeft10() Canvas.SetLeft(M…

WPF、Borderの背景色(Background.Brush)とスライダーの値を双方向バインディング?

目的 MultiBindingとIMultiValueConverterを使って Borderの背景色(Background.Brush)とスライダーの値を双方向バインディング ボタンはBorderの背景色を変更しているだけでスライダーの値には触っていない 背景色(Background.Brush)←→スライダー ↑ ボタンで…

WPF、ScaleTransformと作成した依存プロパティをBinding

目的は 動的作成で個数も決まっていない対象の拡大縮小 縦横独立と同期をチェックボックスで切り替えできるようにする スライダーやボタンで数値の変更 結果 yyyy_20170620_000130.gif OKです 今回のアプリのダウンロード先 github.com デザイン画面とXAML …

WPF、AnglePropertyと作成した依存プロパティをバインディング

作成した依存プロパティと RenderTransformの中のRotateTransformのAnglePropertyをBindingしておいて スライダーやテキストボックスともバインディング 今回のアプリのダウンロード先 github.com デザイン画面 ヤフーブログのかんたんモードでXAMLを書くと…

WPF、Canvasの中に画像として保存したい要素が回転や拡大など変形されていてもOKな方法

Canvasの中にある画像として保存したい要素が回転や拡大など変形されていてもOKな方法 Private Sub Test2ImageFile(obj As FrameworkElement, parentPanel As Panel) '変形した要素がぴったり収まるRectを取得 Dim gt As GeneralTransform = obj.TransformTo…

WPF、画像をくっきり表示させたい(ぼやけるのがイヤな)とき、EdgeModeとScalingMode

前回は図形に対するアンチエイリアスの切り替えだった 今回は画像に対するアンチエイリアスの切り替えというかぼやけるのを切り替え 特に設定しないと拡大や回転表示させたときにはアンチエイリアスが有効な状態で表示される、くっきり表示させたいときは Ed…

EdgeModeでアンチエイリアスの有無を切り替え、WPF

RenderOptions.SetEdgeModeで図形のアンチエイリアスの有無を切り替え 左右それぞれのStackPanelの下の方に表示している図形は上から Line(太さ0.5) Line(太さ1.0) Line(太さ5.0)Lineはそれぞれ2本ずつ Rectangle Ellipse 右のすべての図形は図形自体のEdgeM…

WPF、BindingのStringFormat、数値の書式設定をVBコードで

XAMLじゃなくてVBコードで Bindingした数値の書式設定 SliderのValuePropertyはDouble型、これを各TextBlockのTextPropertyにBindingして表示するときの書式設定の例 数値が123.45で 表示 小数点以下が要らないとき 123 Binding.StringFormat = "0" 123 Bind…

WPFとVB.NET、FillContainsWithDetailとGeometryを使って面と面の重なりを判定

エクセルのグループ化を真似したくていろいろ試している続き マウスドラッグで四角形の範囲を作ってその範囲に重なったものを取得するっていうだいぶ前の方法 gogowaten.hatenablog.com WPFとVB.NET、エクセルのグループ化とグループ化解除を真似したい4 ( …

WPFとVB.NET、エクセルのグループ化とグループ化解除を真似したい6

グループ化後の変形とグループ化解除のテスト 前回からの続き、テストばっかりで本番前に力尽きそう 赤枠はグループの範囲の境界線、青マスは1マス50 見た目の位置とサイズは水色のこと 前提 グループを回転や拡大率の指定をするときの中心点は各Thumb(四角)…

WPFとVB.NET、エクセルのグループ化とグループ化解除を真似したい5

グループ化テストの続き テストのテスト グループ化後の回転 エクセルの場合 グループの中心が回転軸になっている これを真似したい 同じ色どうしがグループ化されていると見倣して、グループを回転させた時の動作 水色のThumbの回転軸は自身の中心 桃色のTh…

WPFとVB.NET、エクセルのグループ化とグループ化解除を真似したい4

グループ化の続き 前回と前々回のを足して グループ化したいThumbをマウスのドラッグで範囲選択してグループ化と解除 ここまでできた グループ化テスト 青枠はグループの枠でただの目印 回転角度と拡大率指定のスライダーはまだ動かせない、これができたらテ…

WPFとVB.NET、マウスドラッグ移動で範囲選択、枠表示して枠内のものを取得

マウスドラッグ移動で四角枠を表示して枠内のThumbを取得 デザイン画面とXAML マウスの位置を取得するには背景色を指定する必要があるみたい だけど色はいらないので透明色のTransparenを指定している VBコード Imports System.Windows.Controls.Primitives …

WPFとVB.NET、エクセルのグループ化とグループ化解除を真似したい3

以前とは別の方法でグループ化と解除のテスト wpf_46.gif デザイン画面とXAML VBコード Imports System.Windows.Controls.Primitives Class MainWindow Private tList2 As New List(Of ExThumb2) Private Const grid As Integer = 20 'グリッドの大きさ '選…