Rain or Shine

もはやプログラムとかコンピュータ系の開発Tips集的なアレ。万年工事中。

Category

C#

[C#] 面積平均法(平均画素法、AreaAverage)

代表的な縮小向けアルゴリズムの『面積平均法』を紹介します。
(Read more…)

[C#] zlib形式圧縮の実装

先日PNGエンコーダを自作してみたのですが、なんでかC#もとい.NET FrameworkにはPNGフォーマットに必須のzlib圧縮(RFC1950)が見当たりませんでした。
無いものは作るべし、ということで自作してみました。

正直なところサードパーティ製のライブラリ使えば終わりですが、PNG圧縮のためだけに逆に大げさすぎるのではと思ったので、自力でなんとかしたいと思います。
(Read more…)

[C#] リサイズフィルタの改良

これまでに幾つかの画像リサイズフィルタを紹介してきました。
あともう一つ紹介したいところですが、その前に実装したコードにいくらか問題点があるのでそれらを解決したいと思います。
(Read more…)

[C#] Lanczos(ランチョス法)【ついでにSpline36】

SSDを交換して容量不足から解消され、久々にVisualStudioを入れることができたので再開しま。
今回はランチョス(Lanczos)法と、おまけでSpline法をご紹介します。
(Read more…)

[C#] Bicubic(バイキュービック法)~3.さらに高速化編~

また前回の投稿から間が空いてしまいました。
さてさて、前回のアンセーフコードとマルチスレッドを用いた劇的な高速化に引き続き、今回は『ループの書き方を変える』というコロンブスの卵的な手法を用いたさらなる高速化について紹介します。
(Read more…)

[C#] 市松模様をXAMLだけで描く方法

WPFをロクに使いこなせてないのに、なんかやってみたかったので作ってみました。
(Read more…)

[C#] Bicubic(バイキュービック法)~2.サクッと高速化編~

前回の続きになります。C#で作ったプログラムを高速化してみます。
さて、約26秒かかっていたものがどのぐらいの速くなるのか…
(Read more…)

[C#] Bicubic(バイキュービック法)~1.基本編~

画像リサイズ補間アルゴリズム第3弾です。久方すぎる…
さて、バイキュービックとはなんぞやというご紹介。
(Read more…)

[C#] WPFのテーマを適用したらListBoxItemの行クリックが反応しない件

Visual Studio Express 2012を最近導入したのをきっかけにC#の開発をWinFormsからWPFに乗り換えてみました。
そんで以下のサイトを参考にExpressionDarkのテーマを導入してみたんですが、なぜかListBoxItemsでラベルが載ってない部分をクリックしても反応しませんでした。

WPFテーマで外観・デザインを簡単に変更するには?(基本編) - @IT

ということで解決方法をサクッとメモ。
(Read more…)

[C#][Linux] 今更ながらLinuxで.NETアプリを動かしてみた

今更ながらmonoを使ってやってみました。
実行環境はうちのサーバなんでVine Linuxです。
(Read more…)

[C#][プログラミング] 文字列を文字列で分割する

手っ取り早い方法としてVB.NETの固有の関数を用いる方法がある。
しかし、一定の条件が揃っていればそれよりも高速に分割が可能である。

これについて考察した内容を述べてみる。

(Read more…)

[C#] 匿名メソッド

C#2.0では”匿名メソッド”という新機能が追加されている。
本来デリゲートを指定するところに直接処理内容を書いてしまう手法。

実際に使用する機会があったのでサンプルとして記録しておく。
(Read more…)

[C#][プログラミング] 高速化メモ

C#における高速化手段をいろいろ検討した。
メモとして書き残しておく。

(Read more…)

[C#] StringBuilderで文字列処理高速化

あちこちで紹介されており、もはや定番とされている StringBuilderによる高速処理。

string型は+演算子で容易に文字列を連結することができるが、いささか速度が遅く、
パフォーマンスを重視したアプリケーションではかなりの重荷となりかねない。
そこでSystem.Text.StringBuilderクラスを使うといい。
(Read more…)

[C#] アドレスクラスのチェック

.NETのIPAddressクラスを使ったアドレスクラスの調べ方を考えた。

IPAddressクラスのGetAddressBytes()を使えばアドレスのバイト配列が取得できるのでそれを利用する。
今回はマルチキャストアドレスをターゲットにしてあるが、同様の方法で他のアドレスクラスもチェックできる。

(Read more…)

[C#] 値型のボックス化は高コスト

C#のパフォーマンス向上について調べていると以下のページを見つけた。
http://msdn2.microsoft.com/ja-jp/library/ms173196(VS.80).aspx

”ボックス化”の作業には非常にコストが掛かることが示されている。
ボックス化とは値型をオブジェクト型にキャストする操作のことで、その反対を”ボックス化解除”と言う。

この件に関して実際にコードを組んでパフォーマンスを測定してみた。

(Read more…)

© 2017 Rain or Shine — Powered by WordPress

Theme by Anders NorenUp ↑