2009-02-01から1ヶ月間の記事一覧

任意の形のウィンドウを作る

デスクトップアクセサリや、ガジェットを作成する場合は、ウインドウを任意の形に変更したいと考えることが多いと思います。ここでは、2通りの方法を説明します。 System.Windows.Forms.Form.TransparencyKeyプロパティを使う おそらく最も簡単な方法だと思…

BitmapData.Strideプロパティ

コメント欄にて情報を頂きましたので、追記しておきます。 1行のバイト数を取得するBitmapData.Strideプロパティという便利なものがあるということで、早速使ってみました。 int width = this.bitmap.Width; int height = this.bitmap.Height; int strideIn …

ビットマップのデータ構造

前エントリに示したコードのバグ 前エントリの最後に書いたバグの話です。 前エントリで示したコードでは、壁紙サイズ等の無難なサイズの画像ではうまく動きますが、半端な画像サイズでは、以下のように、出力結果が不正となります。 実際にどのような画像で…

処理時間の計測

C#

下準備 前エントリで使用したコードを用いて、実際にどの程度の処理時間を要するかを知るための方法を示します。計測結果を表示するために、フォーム上にラベルを作成しておいてください。 System.Diagnostics.Stopwatchクラス // 処理時間計測開始 Stopwatc…

処理時間の短縮

C#

注意点 本節での処理時間計測は、Releaseビルドのデバッグなしで実行しています。 現状の把握 まずは現状のソースファイルですが、以下のようになっているかと思います。 // 処理時間計測開始 long cntStart = 0; QueryPerformanceCounter(ref cntStart); un…

フルカラービットマップからグレースケールビットマップへの変換

下準備(プロジェクトの作成) Winfowsフォームアプリケーションを新規作成します。プロジェクト名は、ImageFiltersとしておきます。 以下のようなフォームを作成します。 ボタンを2つ、パネルを1つ、(パネル内に)ピクチャボックスを1つ配置します。 2つのボタ…