.NET Core 3と2以下の混在下でWPF/WinFormを有効にする

また何年振りかという更新です。

課題

.NET Core 3.0から、WPFWindows Formsがサポートされました。WPFを使う場合のcsprojファイルの基本形は以下です。 (<UseWPF><UseWindowsForms> と置き換えればWindows Forms向けになります。)

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>Library</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
</Project>

本記事は、ここで何らかの理由で TargetFrameworksnetcoreapp3.1 以外を入れたくなった場合の話です。

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>Library</OutputType>
    <TargetFrameworks>netcoreapp3.1;netcoreapp2.1</TargetFrameworks>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
</Project>

netcoreapp2.1ではWPFは使えません。警告が出るだけなので無視を決め込んでも良いかもしれませんが、何とかしてみましょう。あくまでこういうことができるという話として。

続きを読む

MessagePack for C# でMessagePack旧仕様のbyte[]に対応させる

久しぶりの投稿です。

C#におけるMessagePackライブラリの中で、高速であるとされる MessagePack-CSharp

github.com

高速で洗練されているものの、率直に申しますと、MessagePackの古い仕様のサポートが不十分で面倒なようです。その克服の方法です。

ちなみにこの克服にあたり、本家MessagePack-CSharpに修正のpull requestを出し、受理されました。

github.com github.com

ただし旧仕様を使うなら、速度等にこだわりがないなら、古くから実績のある MessagePack for CLI (以下 MsgPack-Cli) を使うのが楽だと思います。 github.com

続きを読む

島の海岸線の長さを推定してみる

この記事はOpenCV Advent Calendar 2015の23日目の記事です。

qiita.com

あらかじめ言います。しょぼいです。すみません!

目次

  • ネタ
  • 手法
    • 海領域の抽出
    • 輪郭抽出
    • 真ん中の輪郭のみを残す
    • 輪郭の長さを求める
    • 輪郭の長さをkmに変換する
  • 北海道の海岸線長
    • 敗因
  • 佐渡島の海岸線長
  • まとめ
    • 面積への展開
  • コード
続きを読む

オンメモリのFileStorage

この記事はOpenCV Advent Calendar 2015の11日目の記事です。

qiita.com

目次

  • 筆者の環境
  • やりたいこと
  • オンメモリの意義
  • リファレンス
  • ファイルの場合
    • ファイルからcv::Algorithmを読み込み
    • ファイルにcv::Algorithmを保存
  • オンメモリのFileStorage
    • メモリ領域にcv::Algorithmを書き込む
    • メモリ領域からcv::Algorithmを構築
    • cv::Algorithm::saveの秘密
    • saveとwriteの差
    • パクってリベンジ メモリ領域からcv::Algorithmを構築
    • もうちょっと良い方法
    • objnameなんて知らないよ
  • まとめ
  • 自作クラスのFileStorageへの対応
続きを読む