FC2ブログ

スポンサーサイト

スポンサー広告
-- /-- --
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[3DCG] KAITOその3・終 [みん]

3DCG
04 /29 2009



にーにゃんおしまい!
なんとなく気合が入らなくなてきちゃってて
そして別に作りたいものができてしまったので。
お蔵入り。。南無ぅ

でも!
男性素体を作ったっていう点で成果はあった!
ありがとう~KAITO~!

今日見つけた記述[むー]

C#
04 /26 2009
なんか便利そうなのでメモ

bool FLG = (A < B)?true:false;

foreach()と一緒でC#な表現なんかね、これ。
あとは代入時のA=B=Cとか。

これらって記述は楽なんだけど、
コンパイル後の動作速度はどうなんだろうねぇ・・

おにゃのこ[みん]

3DCG
04 /24 2009
cgていうSNSにポリゴンで投稿できる機能があって
それに投稿してみた。

http://www.cg-site.net/products/16474
グリグリ見られます。


インデックス付きの画像からグラフィックオブジェクトを作成する[むー]

C#
04 /20 2009
『インデックス付きのピクセル形式をもつイメージからグラフィックス オブジェクトを作成することはできません』なるエラーが出る時の対処方法。


■駄目なパターン■
Bitmap bmp = new Bitmap(FilePath);
Graphics g = Graphics.FromImage(bmp);



■改善版■
Bitmap src = new Bitmap(FilePath);
Bitmap Bmp = new Bitmap(src.Width, src.Height);
Graphics g = Graphics.FromImage(Bmp);
g.DrawImage(src, 0, 0, src.Width, src.Height);
src.Dispose();



先にグラフィックオブジェクトを欲しいサイズで作っておいて、
そこへあらかじめ読み込んだイメージをコピーする事で、
読み込み元のイメージフォーマットを無視する事が出来る。


■応用■
Bitmap src = new Bitmap(FilePath);
Bitmap Bmp = new Bitmap(src.Width, src.Height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(Bmp);
g.DrawImage(src, 0, 0, src.Width, src.Height);
src.Dispose();


このように、読み込み元のフォーマットにかかわらず、
指定のフォーマットに変更することも可能。


※using使うとdisposeが減らせるらしい
Bitmap destImage = new Bitmap(size);
using (Bitmap srcImage = new Bitmap(filename))
using (Graphics destGraphics = Graphics.FromImage(destImage))
{
destGraphics.DrawImage(srcImage, Rectangle, Rectangle);
}
destImage.Save(filename, format);

======================================
Bitmap destImage = new Bitmap(100,100);
using (Bitmap srcImage = new Bitmap(@"filename.PNG"))
using (Graphics destGraphics = Graphics.FromImage(destImage))
destGraphics.DrawImage(srcImage, dstRect,0,0,100,100,GraphicsUnit.Pixel);
destImage.Save(@"filename.PNG", ImageFormat.Png);
destImage.Dispose();

改行付きテキストボックスのデータを扱う[むー]

C#
04 /19 2009
テキストボックスのMultilineをtrueにして、それを各行に分けて処理をしたい場合、
RegexクラスのSplitメソッドを使うのですが、これが無茶苦茶おっそい!

そこでVisualBasic.StringsクラスのSplitメソッドを使うという飛び道具も有る様ですが、
もう一歩踏み込んでstring.Splitを使用する方法をメモ


textBox1.Text.Replace("¥r¥n", "¥n").Split('¥n');


テキストボックス内の改行は"rn"なので、それを"n"に置き換えて処理する。
こうする事によって高速にテキストボックス内のテキストを配列に格納する事が出来ます。

C#テキストボックス謎の挙動[むー]

C#
04 /16 2009
TextBoxのTextプロパティにコードから値を代入すると、次回フォーカス取得時になぜか全選択された状態になる。

これって、何気に作ってると非常に見栄えがよろしくない上に、
まともにやると回避も意外と面倒だったりする。


以下の方法で回避可能

textBox1.Text = "テキスト";
textBox1.SelectionStart = textBox1.SelectionStart;



どうやら仕様らしいんだけど、なんか気持ち悪い上、代入のたびにこれってのもなぁ・・・


面倒な場合はカスタムコントロールって選択肢もあるっぽい
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=38093&forum=7


今日覚えたショートカット
【WIN】+【R】を押して「名前を指定して実行」

Graphicオブジェクトの注意点[むー]

C#
04 /15 2009
毎回なんとなくで作っていたGraphicオブジェクトだが、CreateGraphics()が妙に遅く感じたので、
調査して見ると以下の事が解った

Graphicsオブジェクトを作成する方法は3つ。
1.Imageオブジェクトから作成
2.CreateGraphicsメソッドを使う方法
3.PaintイベントのPaintEventArgsから取得する方法


2よりも1の方法が10倍近く高速に処理を行える
3は用意した状態の再描画専用で、ほかの事をしないのが定石
(再描画の度に複雑な処理を行わない)


メモ
CTL+F5 でリリースビルド

[3DCG] KAITOその2 [みん]

3DCG
04 /01 2009
かいとにーにゃん
かおがああ
むずいです;p;

かっこよすぎるのでNG(キリッ


うーん・・・なんかへん


もちろん裸にマフラーです!

なんかこうもっとダメ臭を出したいのだがむずかしいです。
まぁちまちまやっていくです。

みんですた。。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。