SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

WPFでImageSharpを使ってみる

今回はImageSharpで編集した画像をWPFのUIで表示してみます。

ImageSharpでは、Imageというクラスで画像データを扱っています。(←WPFにも同名のImageコントロールというクラスがありますが別物です。)

そのままではWPFのUIに表示できないので、WPFで扱えるようBitmapSourceなどのオブジェクトに変換して表示してみます。

続きを読む

ImageSharp v1.0.0beta1がリリースされたので使ってみた

.Netの様々な環境で動作する、ImageSharpという画像処理ライブラリのv1.0.0beta1がリリースされました

github.com

以前.NET blogの↓の記事などでも紹介されてたライブラリです。
https://blogs.msdn.microsoft.com/dotnet/2017/01/19/net-core-image-processing/

他のクロスプラットフォームな画像処理ライブラリ(ImageMagickやSkiaなど)には依存せず、すべてC#で実装されてます。
また、.NET standardなライブラリになっているので、
通常の.NET Framework環境だけでなく、UWPなどの環境や.NET Core環境、Xamarin環境などでも使えるようです。

ImageSharpで提供してる機能などは、↓のページにまとまっています。
https://github.com/SixLabors/ImageSharp/blob/master/features.md

画像の読み書きだけでなく、色々な画像処理の定番アルゴリズム類や図形描画などの機能も実装されてます。

個人的には、.NET環境での画像処理ライブラリの大本命になるんじゃないかな、、と思ってて、 リリースされるのを首を長くして待ってました。
(といっても、今回はβ版のリリースなので、正式なリリースはまだまだ先でしょうが・・・)

続きを読む

Visual Studio 2017 Update3でC#7.1を使ってみた

リリースされてから随分経ちましたが、VS2017 Update3に更新しました。 Update3からは、C#7.1の機能が使えるようになってます。

自分はまだあまりC#7の機能を使いこなせてないですが、
7.1で色々と便利な機能も追加されているので少し使ってみました。

続きを読む

JavaScriptで使えるモダンなDataGrid系ライブラリを調べてみた

WebアプリのUIを作っていると、表形式でデータ表示をしたいときとかがあるかと思います。
特に業務系アプリとかだったら、この手のDataGrid系のコントロールが必要になる場面って多いですよね。
JavaScriptやHTMLでUIを作る場合、DOM要素のtableタグでもテーブル表示はできますが、tableタグだと、テーブルのヘッダを固定できないとか、カラム幅の調整が面倒とか、なかなか使い勝手が悪いです。

そんな時には、何かしらのライブラリを併用することになります。
ちょっと前までだと、この手のテーブル表示にはjQuery依存なライブラリを使うことが多かったかと思います。

ですが、個人的にはjQuery系のライブラリって、あんまいい印象ないんですよね。
ちょっと入り組んだことをすると意味不明な挙動に悩まされたり、何かと不満がたまることが多かった気がします。(使い方の問題なだけの気もしますが。。。)
近年のjQuery離れの風潮も考えると、できれば極力jQueryに依存したライブラリは使いたくないです。

ということで、今回はjQueryに依存しないライブラリを中心に色々探してみました。 また、AngularやReact、Vue.jsなどのような、特定のフレームワークに依存しないものを見繕っています。   で、個人的に「これはよさそう!!」と思った、以下の3つのライブラリを試してみました。

  • handsontable
  • ag-grid
  • canvas-datagrid
続きを読む

electronでWeb Componentsを使うサンプル

electron v1.5以降のバージョンでは、WebComponentsが普通に使えるようになりました。 (v1.5系はpre-release版だけでstableのリリースがなかったため、実質的にはv1.6系以降のバージョンですね。)

ということで、以前↓で書いた記事の内容をelectronで動かすサンプルを作りました。

続きを読む

electronでCSS Grid Layoutを使うサンプル

Electron v1.7系では、内部で使用しているChromiumが58系に更新されたため、CSS Grid Layout Module Level1が使えます。
https://caniuse.com/#feat=css-grid

ということで、以前↓で書いたサンプルを、最新のElectron v1.7.5環境用に書き換えました。

コードは以下のリポジトリにあげています。
https://github.com/sourcechord/electron-gridlayout-sample

electron v1.7系以降の環境では、↓のような拡張フラグの指定をしなくても普通にCSS Grid Layoutが使えます。

App.commandLine.appendSwitch("--enable-experimental-web-platform-features");

CSS Grid Layoutに対応したブラウザも増えてきましたし、各種入門記事もWeb上にだいぶ増えてきました。
これからは、CSS Grid Layoutを使う機会も徐々に増えそうですね!!

f:id:minami_SC:20170910140911p:plain

monaco-editor + electronのサンプルコードを更新しました

以前、monaco-editorなどをelectron環境とかで使ってサンプルコードを書きました。

sourcechord.hatenablog.com sourcechord.hatenablog.com

だいぶ時間がたって、使っているライブラリ類のバージョンが古くなっていたので、このサンプルのライブラリ類を更新しました。

それぞれ、以下のバージョンを使うように更新しています。

  • monaco-editor v0.10.0
  • electron v1.7.5
  • typescript v2.5.2
続きを読む