八 四

コンピュータ

Python-OpenCVで図形の縁を検出するルーチンを考える

全てのピクセルの左右上下を検査し縁に当たる部分か調べる方法で縁取りをしてみます。 #!/usr/bin/env python3 # coding: utf8 import cv2 import numpy as np def createB...
コンピュータ

WPFで動画ファイルを再生するサンプル「イベントの動作確認」

MediaElementはWPFで動画を再生することが出来るコントロールです。 今回は動画を再生した際どのようなイベントが発生するか確認してみます。 サンプルプログラム ファイル名:MainWindow.xaml <Window x:Cla...
コンピュータ

C#のList<T>とインターフェイス

インターフェイスを使ったことはあっても自分で作る機会ほどんどないのですが、たまたま使わざるをえない状況になりましたので、サンプルプログラムを書いてみたいと思います。 using System.Collections.Generic; nam...
コンピュータ

WPFのコントロール「Border」のサンプル

「Border」の名称から罫線を引くコントロールと予想しますが、実際どのような代物なのか試してみます。 XAMLにborderをセット <Window x:Class="BorderSample.MainWindow" xmlns=" xm...
コンピュータ

C#でWPF学習中「WPFプロジェクトを作成するスクリプト3」

前回にクラスライブラリとコンソールプロジェクトを使えるようにしましたが、今回はシンプルにWPFのアプリケーションを作成するプロジェクトを作成します。 WPFプロジェクトを作成しMicrosoft.Xaml.Behaviors.WpfとRea...
コンピュータ

C#でzipファイル内のファイルを削除

ZipFileをUpdateモードで開いてzipファイル内のファイル(Entry)を取得Delete()メソッドで削除します。 ソースコード using System.IO.Compression; const string zipfile...
コンピュータ

C#のWinFormsでINotifyPropertyChangedを使ってコントロールとデータバインディングしてみる。

WPFでINotifyPropertyChangedを使ってみたことがありました。 その後にもっと便利なReactiveProperyを知ったため、長らく忘れていました。 正直MVVMなWPFは小規模なプログラミングだと面倒を感じ、WinF...
コンピュータ

動画の出力に失敗する場合、動画の幅と高さの設定をみなおす。

オープンソース系のソフトで動画出力部分にffmpegが使われている場合が多いのですが、最近とあるアプリケーションで動画を書き出した所、イベントログにffmpeg.exeがクラッシュした旨ログが出力されていることがありました。 .AVIでは成...
コンピュータ

ファイルをバイト配列に読み込む実験「FileStream.ReadとParallel.For」

SSDに保存されたファイルサイズが216MBのPNG形式画像ファイルがありまして、これをWinFormsのPictureBoxで表示するプログラムを書きます。 // パターン0 using FileStream fs = new(fileN...
コンピュータ

C#のWinFormsでSystem.DrawingとMagick.NETとOpenCVSharpでPNGファイルのデコード速度を比較

手作りのソフトなので計測なので精度は今一つですが、System.Drawingが一番速い結果になりました。 System.Drawing:22ms Magick.NET:39ms OpenCVSharp:33ms Windows環境で実行し...
コンピュータ

C#のWinFormsでファイルマネージャを作る3。「サムネイル表示の高速化」

ListViewの動作が遅い原因を探ってみたところ、オーナードローでの描画にサムネイル画像の用意が間に合っていないことが原因でした。 VirtualModeで表示部分だけの描画される動作も、そもそも描画の準備が間に合っていないためスクロール...
コンピュータ

C#のWinFormsでToolStripなToggleButtonのサンプル

スライドスイッチみたいな見た目を想像しましたが、押しボタンタイプの見た目です。 ソースコード namespace ToolStripToggleButtonSample1; public partial class Form1 : Form...
コンピュータ

C#のWinFormsでファイルマネージャを作る2。「大きいサムネイル」

前回作成した内容で使ってみたのですが、目的が画像や動画の選択ですので、ファイルの一覧で画像の内容が目視出来たほうが良いことに気が付きました。 ついでにGIMPの.xcfやPhothoShopの.psd及び動画の.aviや.mp4などの内容も...
コンピュータ

C#のWinFormsでファイルマネージャを作る。「試作編」

少しずつ調べていた機能がだいぶ溜まったので、以前から作ろうと思っていたファイルマネージャ(劣化版エクスプローラー)を作成したいと思います。 アプリケーションのファイルの一覧からGIMPなどの画像加工のアプリケーションに画像ファイルをドラッグ...