Shape(検証結果)

BmpProc1BmpProc8BmpProc24BmpProc32 直線ShapeGDI+GDI0.1438−−0.1352−−0.16630.36870.20180.17880.43350.2007 長方形(枠)ShapeGDI+GDI0.2009−−0.1746−−0.25080.5525−0.28280.6916− 長方形(塗潰し)ShapeGDI+GDI3.5225−−2.6038−−3.29163.60740.73033.87972.89…

透過色と透過度(Alpha値)

さて昨日、Shapeには透過色の考慮が無いと書いたが正確には『Alphaブレンドを考慮して描画しない事』と『透過色の概念が無い事』の2つのことを混ぜて書いてしまっていた。さらには『結果としてのビットマップが透過機能を持つ事』と『描画ルーチンが透過の…

Shapeクラス課題

課題はいっぱいある。 DrawLineが水平線、垂直線の場合の最適化処理をしてない。(全部斜線のつもりで無駄に計算してる) Fill系で透明色を考慮していない。 Fill系でborder色を考慮していない。 GDI+やJavaなどでDraw〜とFill〜で描画範囲が1ドットの違い…

Shapeクラス検証(予告)

今描画速度について色々検証中であるが、楕円描画ははっきり言ってかなり遅いと感じる。なので 直線、長方形はShapeが十分使えそうかも? 楕円はGDI+を使うほうがよさそうかも? 検証結果を出したら改めてはっきり書きたいと思う。

24ビットBitmapでのShape描画例

using System; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; using ImageUtils; namespace ShapeTestApp { public partial class MainForm : Form { int drawType = 0; public MainForm() { InitializeComponent(); } …

Shapeクラス(完成)

Bitmapクラスの内部バイト構造へ簡単にアクセスできるBmpProcX(XはPixelFormatに応じた1画素あたりのビット数=1,8,24,32)を使って単純な直線、長方形、楕円を描画するクラスShapeを完成した。全コードはそこそこ多くなったのでブログへ貼り付けずにダウンロ…

私の休みを返せ

今日はいろいろ作りたいソフトとか本屋にいって買いたい本とかあったのになあ。まあ・・頻繁に起こる出来事でもないだろうからあきらめよう。なんか理不尽に疲れたなあ。おやすみなさい。

運ぶだけでも一苦労とは

簡単に持って帰れるかと思ったら30kg以上あるんですなあ。吉永さゆりさんは軽そうに押しているCMが店内に流れているのになあ。というわけで今日は結局テレビを家へ運びこみ、線をつないだり設定をいろいろやったりしてやっとなんとか見ることができる…

時代に取り残されていたのは私ですか

そういうわけでデジタルテレビを買ってきた。興味もまったく無かったので37型テレビというものを初めて”存在を認識”した。もちろんCMで散々見ていたので知ってはいたが初めてじっくり見てみたのだ。本当にすごい技術が出来上がったものだとかなり感心し…

ああ面倒だあ

それにしても、もうこんなに書いてしまったなあ。それくらい、それくらいに文句をいっぱい書きたくなるくらいに私は本質的には実は面倒くさがりなのである。プログラマーというのは面倒くさがりのほうが向いていると思う。面倒だから最適化してできるだけあ…

2Fより上なんて行った事なかった

そして今日は朝から電気屋に行くハメになってしまったのである。家族は『兄さんはコンピュータが好き』→『だからテレビとか電気屋も好き』と勝手に解釈しているようだ。もうまったくもって迷惑だ。だからといって家族にわかるような平易な説明で誤解を解く自…

ヤツだヤツに違いない

そこに邪魔が入ってしまった。たぶんヤツだ。妹の彼氏だ。確認はしていないがヤツしかいない。ケーブルテレビ線からデジタル波が来ているはずだと妹へ吹き込み、ほかの家族に情報が知れ渡ってしまったのだ。

そしてデジタル化

さてそんな我が家にとうとうデジタル化の波が押し寄せてきてしまった。うちはケーブルテレビから電波供給されているのであるがこれはアナログ電波とデジタル電波が一本の線で送られてくる仕組みとなっている。そうなっているのはもうずいぶん前から私だけは…

うちの家族とテレビと芸能ニュース

うちの家族(特に女性陣)はテレビが大好きである。特に芸能ニュースが大好物なのである。口には出したことは無いのだが私はアレが実は大嫌いである。芸能人がくっ付いただの離れただの・・・そんなのに頭を巡らせる時間が非常に無駄に思える。まあ一日の大…

自前で簡単FTPクライアントを作ってみる

C#

色々ソースが出来てきたのでHPスペースにアップしようと思う。でもそのまえに、自力でFTPの簡単なアプリを作ってみようと考えている。Cで昔作った事があるのだが、きっとC#ならあっという間に高機能なやつが出来そうだ。基本は「ローカルの指定フォ…

Action<T>を使い倒してみる

Actionは『T型の引数を一つとり返値が無い関数』を意味するdelegate型である。System.Windows.Formsに定義されている。 delegate void Action<T>(T obj);さてコンソールへメッセージを簡単に出力するConsole.Writeの使用方法を良く見てみると・・・ Console.Wri</t>…

Action<T>を使い倒してみる(つづき)

・・・ということでさっそく作ってみた。nが増えるにつれ素晴らしいモノが出力される。念のためにx100をコンパイルしてみてtestと表示できることを確認済み。 using System; namespace garu.ActionN { static class ActionN { const int TAB = 2; const stri…

Web140色の一覧を得る方法

Color構造体には定義済みの名前のついた色のリストが存在している。俗にWeb140色というらしい。これを一覧したい場合には次のようにやる。 using System; using System.Drawing; using System.Reflection; namespace garu.ColorList { static class ColorLis…

Shapeクラス(設計)

C#

ShapeクラスはImageUtilsのBmpProcを拡張した単純な作図クラスとする。最初はBmpProcを派生しようかとも考えたのだが、privateメンバーが多くて派生しても恩恵に授かれそうにないのでBmpProcをメンバーに持つ形で作ることにした。だいたいの雰囲気はこんな感…

気が利かないやつめ・・

C#

なぜか↓こいつは”未割り当てのローカル変数'n'が参照されました”というコンパイルエラーが出る。 using System; namespace garu.test { class test { delegate void callback(); static void Main(string[] args) { int n; callback f2 = delegate { Console…

乙一

乙一という作家にずいぶん前からはまっている。この人は「異常者の最大の理解を示す代弁者」である。本当は私は彼を異常者そのものだと信じているが、そう書いてしまうと色々言われそうだから書けない(笑 「不眠症になると、私は首に紐を巻きつけて眠るの。…

Shapeクラス(予告)

ImageUtilsの中のBmpProc関係はビットマップの内部バイト構造へ簡単にアクセスできるクラスである。ここで先日から作成していたアプリではマウスの位置を表す四角形を描画する必要があり無理やりコードを書いた。複雑な図形ならビットマップのGDI+を使えばい…

しまったintNearest()があるじゃん

C#

ColorPickerの画像拡大のところはImageUtilsのintNearest()と同じ処理が含まれていたねえ。せっかくなので書き直してみる。MainForm.csの101行目付近。変更前 for (int y = 0; y < FORM_LEN; y++) { for (int x = 0; x < FORM_LEN; x++) { src.SetXY(x / ZOO…

ソフトの置き場としてのHP

ブログは画像や文章はアップできるがソフトなどをおくことには向いていない。日記だけにしておこうかとも思ったが、やはりどこか適当なスペースも探すことにする。

完成にしとく

予想図よりはグラフ用紙風表示とかしてなかったり手は抜いた。見た目を凝るのは別のゲームっぽいアプリで一生懸命やることにしよう。一応マウス位置をあらわす黒い四角だけは描いておいた。以下はMainForm.cs。Win32.csとHook.csは先日のやつから変更ない。 …

あ、寝るといいつつ・・

http://www.lespros.co.jp/artists/yui_aragaki/index.html ↑ここのガキちゃん(あらがきゆいちゃんの愛称ですが)いい感じに動きますなあ。こういうアプリ作りたい(こら先に作りかけのを完成させろ!>自分)じゃあほんとにおやすみなさい。。。

核心部分?

C#

さて。スクリーンから画素を取り出すのにはどうしたらいいだろう?せっかくC#なので使えるならばなるべくマネージドなコードを使いたいのでちょっと調べたんだが、GraphicsクラスのCopyFromScreenというものがあった。これは引数で与えた四角形領域を返す関…

キーボードフックのテストモジュール

C#

CTRL+ALT+矢印でマウスが動く。CTRL+ALT+SHIFT+矢印で移動単位が大きくなる。ESCキーでアプリが終了する。このコードでは、こいつが常駐しているときにはCTRL+ALT+矢印などは本来のアプリへはメッセージが送られないというのもテストしている。e.Handled = t…

Win32クラス

とりあえず今必要な最低限のもの。ずっと未来にはちゃんとWinUser.h、WinTypes.hあたりを完全移植に近づけたいが・・・数が半端じゃないなあ(苦笑。 SetWindowsHookExには最後の引数でモジュールIDとかスレッドIDを渡すところがあるんだが、今のところ自分…

Hookクラス

とりあえず標準コンポーネントのTimerっぽく Newでインスタンス作成 +=演算子でユーザーハンドラに紐付け Start()でフック開始 Stop()でフック終了 というクラスを作ることにした。・・・マウスフックとキーボードフックは微妙に処理も似ているので、似て…