- 1 名前:デフォルトの名無しさん [2008/01/21(月) 19:35:37 ]
- (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。 前スレ C#, C♯, C#相談室 Part44 pc11.2ch.net/test/read.cgi/tech/1194956418/ その他テンプレ>>2-5くらい
- 193 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:46:20 ]
- 公開された.NET Frameworkのソースコード見てたらInt32なんかもC#で実装されてるけど
MSはなんか特殊なコンパイラ使ってるの?
- 194 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:30:56 ]
- VC#には、mscorlib.dllを参照させない/nostlibというオプションがある。
msdn2.microsoft.com/ja-jp/library/fa13yay7(VS.80).aspx
- 195 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:46:17 ]
- >>188
代替案って・・^^; SharpZipLibに比べると3倍ぐらい遅いって、過去にそんな話出てたと思うが。
- 196 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:01:46 ]
- >>195
そんな話見たことねーよ どんな妄想だよ 遅いというからにはしっかり計って代替案示せ糞野郎
- 197 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:03:55 ]
- 統合アーカイバプロジェクトのzip 30秒
SharpZipLib 10秒
- 198 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 02:07:16 ]
- ↑なにこれ 人馬鹿にしてるの?
- 199 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:09:38 ]
- そこまで自分で性能気にするなら自分で測ればいいだろカスが
- 200 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:17:30 ]
- 代替案出せとか2chに何求めてるんだよw
- 201 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:26:43 ]
- なんか意味を取り違えてないか?
俺は196じゃないけど、196の言いたいことは「遅い」というのは 比較の対象があってこそ言えることで・・・ まあこれだけ補助線を引けば読解力ない君でもさすがにわかるだろ
- 202 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:40:13 ]
- 自演乙
- 203 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 12:52:19 ]
- 自演認定乙
- 204 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:06:24 ]
- 図星か
- 205 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:11:21 ]
- (・∀・)クスクス
- 206 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:14:24 ]
- 本当にこのスレにいるやつは、読解力ないのな
アホばっか
- 207 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 13:16:58 ]
- そうだね
- 208 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:21:11 ]
- 今日は凄いくだらない事にメチャクチャ腹が立ったので、
懺悔の心でココに書くよ。 "C# bmp LockBits "でグーグル検索するとLockBits()メソッドの1つめの引数rectに Rectangle rect = new Rectangle(0,0,bmp.Width,bmp.Height); を指定するブログやら、Tipsサイトが大量に出てくるよね。 初心者向けとか言って、ご丁寧に赤と緑を入れ替えた画像とか貼ったりしてさー。 LockBits()はRectangle型のxとyしか見ない、あからさまなバグ入り関数なんだよね。 あそこは new Rectangle(0,0,1,1)で十分。 っていうか、大きな画像の一部のIntPtrを取り出したいときは、また別途Bitmapインスタンスが必要なぐらい使えない関数ww。 そっちの方がTipsとして必要だろうがwww。 10も20も「自称」プログラマのブログがあって、MSが作ったバグには一つも触れ無いんだよwwww。 おまえらは、MSの糞が食卓に並んでても気にならない本物のブタ共だよwww。 自分のブログで晒し上げにしようかと思っちゃったよww。
- 209 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:34:43 ]
- まあ208が「懺悔」の意味を勘違いしていることはよくわかった。
- 210 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:42:35 ]
- 今日は凄いくだらない事にメチャクチャ腹が立ったのでやつあたりしている。
が正しいな。
- 211 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:48:43 ]
- 「これはひどい」
「突っ込み所満載」
- 212 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 19:56:13 ]
- >>208
普通にRectangleで指定した範囲だけロックされるぞ (0,0,1,1)の範囲を指定したのにその外を触ろうとしたらAccessViolationExceptionが出る
- 213 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 20:05:04 ]
- 八つ当たりする先に困ってココに書いてるんだけどね。
>208 釣れた!! ソースはってみろよ。
- 214 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 20:05:32 ]
- >212だ
自分が釣られてどうする。
- 215 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 20:25:23 ]
- おら 奇跡は起きたか豚!
tmp.Save(@"c:\tmpA.Png", ImageFormat.Png); //tmpがBitmap型な。 BitmapData bmpData = tmp.LockBits(new Rectangle(0,0,1,1), ImageLockMode.ReadOnly, tmp.PixelFormat); int bytes = (tmp.Width) * (tmp.Height) * 4; byte[] rgbValues = new byte[bytes]; IntPtr ptr = bmpData.Scan0; int a = bmpData.Height; int b = bmpData.Width; Console.WriteLine(a.ToString()+"+"+b.ToString()); //1+1 Marshal.Copy(ptr, rgbValues, 0, bytes); for (int d = 0; d < bytes; d++) { rgbValues[d] = 0xff; } Marshal.Copy(rgbValues, 0, ptr, bytes); tmp.UnlockBits(bmpData); tmp.Save(@"c:\tmpB.Png", ImageFormat.Png);
- 216 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:14:12 ]
- むしろブログでやってくれたほうが愉快だったのに、と思ってしまう。
- 217 名前:208,213,215 mailto:sage [2008/02/14(木) 21:15:04 ]
- おまえら反応無いなと思ったら。
>208>213>215 は全部俺>208だ。 ttp://hey.chu.jp/up/source3/No_13803.zip 今日は気分が良いからアプロダにサンプルまで置いてしまうぞ。 最後に俺のTipsを付けておく。 bmpData = tmp.LockBits(new Rectangle(0, 0, 1, 1), ImageLockMode.ReadOnly, tmp.PixelFormat); ptr = bmpData.Scan0; Marshal.Copy(ptr, rgbValues, 0, bytes); Rectangle rect = new Rectangle(64,64,256,128);//目的範囲をrectとすると。 for (int i= rect.X;i<rect.X + rect.Width;i++) for (int j = rect.Y; j<rect.Y+ rect.Height;j++) { int d = j*tmp.Width+i; swap = rgbValues[d * 4 + 1]; rgbValues[d * 4 + 1] = rgbValues[d * 4 + 2]; rgbValues[d * 4 + 2] = swap; }
- 218 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:16:29 ]
- >216
っていうか、 MSのフォーラムに行け。
- 219 名前:208 mailto:sage [2008/02/14(木) 21:19:43 ]
- >218も俺。 って。
>216はVSインストールした事も無いのに書き込んで居るんだね。
- 220 名前:208 mailto:sage [2008/02/14(木) 21:48:05 ]
- どうしたのですか?
ゲイツのうんこ大好きなスカトロ豚さん? 31行目か60行目を Marshal.Copy(ptr, rgbValues, 0, bytes+1); // +1(・∀・) イイ って変更すると、多分お探しのエラーコードがでまちゅよ。
- 221 名前:216 mailto:sage [2008/02/14(木) 21:57:35 ]
- 215で例外になるじゃんと思いつつも、217やったらたしかに動くね。
違いと言えば、215のコードを動かしたときは tmpのインスタンスを作るときにファイルから読み込むBitmapのコンストラクタを使ったということくらい。 あと、217でtmpの中身を作るときのPixelFormatをFormat16bppRgb565にしつつ、 LockBitsに渡すPixelFormatをFormat32bppArgbにしても、探してた例外になったよ。
- 222 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:57:44 ]
- えっと・・・何?こいつ
- 223 名前:208 mailto:sage [2008/02/14(木) 22:02:30 ]
- >216
あんまり頑張るなよ。 自分でも苦しい言い訳だと思わない? >int bytes = (tmp.Width) * (tmp.Height) * 4; の"4"の意味が解らないなんて無理があるだろ。 けど、とりあえず反応してくれて、 あ り が と 。 ちなみに実行した環境とかも教えてくれちゃうと嬉しいな。
- 224 名前:208 mailto:sage [2008/02/14(木) 22:05:12 ]
- >222
良いTipsを思いついたからブログに書こうと思ったら、 世間の奴らのブタ過ぎに書くに書けなくなった。
- 225 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:06:44 ]
- >>223
いやそういうことではなさそう PixelFormat.Format32bppArgbで作ってPixelFormat32bppRgbでロックしても例外出る ビットマップのPixelFormatと違うフォーマットでロックしたらRectangleの中だけロックされるみたいだ
- 226 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:19:43 ]
- >225
そうだろうな。 そして人は Format32bppArgbなら、Format32bppArgbでLockBitする。 Format32bppPArgbなら、Format32bppPArgbでLockBitする。 Format32bppRgbなら、Format32bppRgbでLockBitする。 そうでない時エラーになるのは人として当然。 そして >225はnew Rectangle(0, 0, tmp.Width, tmp.Height)の時どう動いて欲しいのかな? >ビットマップのPixelFormatと違うフォーマットでロックしたらRectangleの中だけロックされるみたいだ (・∀・)ニヤ ぶっちゃけ書くけど、2008まだインストールして居ないんだ。俺。
- 227 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:33:39 ]
- >>223
ペイントで24ビットビットマップとして保存して、 Bitmap tmp = new Bitmap(@"h:\P1000220.bmp");のようにした。 .NET Framework 1.1 SP1と2.0 SP1 (3.5)、 VC#コンパイラ.NET 2003, 2005, 2008の3つで試した。 32ビットビットマップでやるとtmp.PixelFormatがFormat32bppArgbになってうまくいくね。 (217からGraphics作ってる部分だけ抜き出して、tmp.Saveで作った)
- 228 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:35:19 ]
- >>226
違うフォーマットでロックすることは可能 これでお前の期待する結果になる こういう仕様のようにも見える Rectangle rect = new Rectangle(0, 0, 10, 10); BitmapData bmpdata = tmp.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb); for (int i = 0; i < rect.Width * rect.Height; i++) ((uint*)(void*)bmpdata.Scan0)[i] = 0xfffffff; tmp.UnlockBits(bmpdata);
- 229 名前:208 mailto:sage [2008/02/14(木) 22:43:13 ]
- >227
良く嘘をつく奴だな程度に思っていたけど、只の低脳なのか? Bitmap tmp = new Bitmap(@"h:\P1000220.bmp"); //この次の行に書け。 Console.WriteLine("tmp.PixelFormat =" + tmp.PixelFormat.ToString()); //何が見える? ペイントで24ビットビットマップとして保存して居る奴に必要なコード変更はこういう事だ。 //int bytes = (tmp.Width) * (tmp.Height) * 4; int bytes = (tmp.Width) * (tmp.Height) * 3;
- 230 名前:228 mailto:sage [2008/02/14(木) 22:45:30 ]
- 補足
tmpのPixelFormatはFormat32bppArgb
- 231 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:02:29 ]
- >>229
嘘付きと低脳だったら嘘付きがいいな。 すまん、LockBitsするときにはPixelFormat.Format32bppArgbを 指定するよう書き換えていたことをさっきからずっと忘れていた。
- 232 名前:208 mailto:sage [2008/02/14(木) 23:03:53 ]
- >228
面白い。 >225は間違って無かったんだな。 Bitmap tmp = new Bitmap(412, 256, PixelFormat.Format32bppRgb); で作って。 BitmapData bmpdata = tmp.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb);//つまり同じ。 for (int i = 0; i < rect.Width * rect.Height; i++) ((uint*)(void*)bmpdata.Scan0)[i] = 0xfffffff; tmp.UnlockBits(bmpdata); した場合は元のもくあみに戻るのな。 念のため for (int i = 0; i < (rect.Width * rect.Height)+200; i++) ((uint*)(void*)bmpdata.Scan0)[i] = 0xfffffff; として見たが、むなしくなった。 結果は白線がのびる。 exception無し。 こちらの環境は 2005 .NET 2.0 オンリ 夜も更けて来たので哲学入ります。 俺がやってることは、世間の奴らが見向きもしないで触らずにいた汚い糞を、 わざわざどけてやってるだけなんだよな。 結果、一番得得してるのは、糞を垂れ流してる張本人って事ないか?
- 233 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:05:02 ]
- >231
わるかった。 君が板から>228なんて案も出たんだ。
- 234 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:32:16 ]
- たぶんLockBitsは指定されたPixelFormatと内部の形式が同じだったら、
コピーしないで中のメモリを直接ロックかける、 違ったら新しくメモリを用意し、そこに指定された領域を指定された形式に変換したものを 書き込んでいるという風になっている予感。 ソース見たら一発でわかるだろうな、誰かExpressではないVS 2008持っている奴いないのか? デバッグ時は厳密にチェックするルーチンを使用し、 リリースでは速度重視って切替ができたら今より良かったと思う。
- 235 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:34:46 ]
- NetMassDownloader使えばVS持ってなくてもソース落とせるよ
ただ,ネイティブGDI+の関数を呼んでるだけという罠
- 236 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:59:50 ]
- >235
OSの環境に依存か。 unsafeかつ、フォーマットの変更が有って初めてLockBit()は仕様通り動くのな。 >228 >208がrect=(0,0,1,1)に拘ってたけど、rect=(80,64,1,1)とかは動作に影響があるな。 ソースにはラマーの意図を明確にする様に書けって話に戻るんじゃない? せいぜい他人が>217みたいなソースを書いてきたとき、頭を捻るって感じ。 そんな場面は限りなく少ないから、ググっても仕方ないで、 Q.E.D. ちなみに、俺が>208って言ったら信じる? グチっぽくならないコメントを考えるよw。
- 237 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:11:02 ]
- (´・ω・`)しらんがな
- 238 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:39:25 ]
- >>236
VistaだとGDI+ 1.1になっているから何か変更があるのかもしれない。 > rect=(80,64,1,1)とか そういうときのためのBitmapData.Stride。
- 239 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:11:20 ]
- >>236
> unsafeかつ、フォーマットの変更が有って初めてLockBit()は仕様通り動くのな。 >228 その条件を満たさないとき、ドキュメントにあるどの仕様に反してるんだ? 一部だけを切りだして Stride も小さくしてくれるとか、領域外をアクセスすると 違反になるとかは 208の脳内仕様じゃないいのか? LockBits は指定された領域を指定された様にアクセスできる情報を取得する ためのメソッドであって、指定領域外へのアクセスがどうなろうが別にバグでも なんでもない。ちゃんと当該領域は移動されないようロックされ、BitmapDataに アクセスするための情報も返される。
- 240 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:29:33 ]
- で、結局アホは誰だったの?
俺の他に
- 241 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:31:14 ]
- dat.2chan.net/l/src/12029988461823ffe.jpg
やっぱ男はこうじゃないとね
- 242 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:50:29 ]
- コピペ君って馬鹿だな、まで読んだ。
- 243 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 19:09:48 ]
- コピペ君って馬鹿だな、まで読んだ。
- 244 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:42:33 ]
- Drawing::BitmapからGDI+のCachedBitmapを作成したいのですが、
Drawing::BitmapからGDI+のBitmapを取得するにはどうすればよい?
- 245 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 21:57:07 ]
- え? 早口言葉?
- 246 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:36:40 ]
- うわぁ・・・
- 247 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 00:59:38 ]
- bmp.GetHbitmap()ってことじゃなくて?
- 248 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:10:57 ]
- >>242-243
よく見るよね こういうのコピペって言うの?
- 249 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:34:08 ]
- 「コピ」−アンド「ペ」−スト
- 250 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:51:49 ]
- >240
ラマー板に良くいる。プログラミングが出来ないラマーが釣れましたね。 static void Main(string[] args) { Bitmap src = new Bitmap(64, 64, PixelFormat.Format32bppRgb); Graphics.FromImage(src).Clear(Color.Black); Rectangle rect = new Rectangle(32, 32, 20, 20); unsafe { BitmapData bmpdata = src.LockBits(rect, ImageLockMode.ReadWrite, src.PixelFormat);//見える? for (int i = 0; i < (rect.Width * rect.Height); i++) ((uint*)(void*)bmpdata.Scan0)[i] = 0xfffffff; src.UnlockBits(bmpdata); src.Save(@"same.Png", ImageFormat.Png); Graphics.FromImage(src).Clear(Color.Black); bmpdata = src.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); //見える? for (int i = 0; i < (rect.Width * rect.Height); i++) ((uint*)(void*)bmpdata.Scan0)[i] = 0xfffffff; src.UnlockBits(bmpdata); src.Save(@"different.Png", ImageFormat.Png); } } チマチマソース書くより、ファビョる豚の方が案外気分が良いのかもな。 ラマー板に行けば解るよ。 頭の善し悪しより声の大きさが重要ってさ。
- 251 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:00:12 ]
- >239の言葉を借りれば、
LockBits()と言う変幻自在なMS仕様を >208如きには追えなかったってことさ。 これからも、MSがカラスが白いと言ったら、絶対に黒いっていうなよw。
- 252 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:50:16 ]
- >208が見てきたサイトも解った。
>特別の事情がない限り、このコードのように全領域をロックする。 この発案者は、きっと毎日 MSを尊敬の目で見てきた善行によって得られたノウハウだと思ったのだろうな。 だけど書いてる本人か(もしくは彼に教えた人)も「特別の事情」がさっぱり解らない。 そして「どうして?」とか「事情とは何か?」って考えはとても背徳的で、>239の様に酷い罵声を浴びせられるんだ。
- 253 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:56:38 ]
- blogに書くなりMSにフィードバックするなり文句言うなりして終了だろ
何を粘ってるんだよ
- 254 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 02:58:48 ]
- >239みたいな奴が居なければ、>208はココに書き込まなかった
って案に、個人的に酔ってみたんだ。 ラマー板で適当なスレを探そうかしら。
- 255 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 20:26:31 ]
- ラマー板って何かと思ったよ。初めて聞いた。
妊婦用の板かと。
- 256 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 20:28:46 ]
- >>255が初めて触れた事を考えるとお前らなかなか大人だなw
- 257 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 21:30:21 ]
- >>254
よう、ひっひっふー
- 258 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:22:18 ]
- >>254
日本語でおk、ひっひっふー
- 259 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:25:27 ]
- マ板でやれ。
- 260 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:44:20 ]
- >>259
ラマー板でやれ
- 261 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:51:37 ]
- ここはラム板だっちゃ。
- 262 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 22:55:15 ]
- 混み合う電車の車内、その男は熱く堅いマラを私の後ろから押しつけてきた
- 263 名前:デフォルトの名無しさん [2008/02/17(日) 04:44:40 ]
- ラマー板吹いたwwwwww
オレオレ用語キタコレ やっぱり人間、謙虚じゃないといつどこで恥をかくか分からんねw pc11.2ch.net/test/read.cgi/gamedev/1198312422/329- pc11.2ch.net/test/read.cgi/gamedev/1198312422/339 pc11.2ch.net/test/read.cgi/gamedev/1198312422/344 pc11.2ch.net/test/read.cgi/gamedev/1198312422/346 pc11.2ch.net/test/read.cgi/gamedev/1198312422/348 たぶんこいつ、このスレでファビョってる奴と同一人物だよ ラマー板も「想定」してあげないといけないらしいw 自作自演で自分の恥をうやむやにして逃げるから笑える 自分の言ってることを理解してもらえないと、ゆとりとかMS信者とか騒ぎ出すから気をつけてね
- 264 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 04:50:03 ]
- pc11.2ch.net/test/read.cgi/gamedev/1198312422/344
たしかに「プログラマじゃないから」とか言ってるし、アンカーの仕方も同じだな。 どう見ても>>250です。本当にありがとうございました。
- 265 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 07:09:06 ]
- >>208
Lockbits - specifying a rectangle with pixelformat 32bppArGB connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=249805
- 266 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 09:15:18 ]
- >265 C#だとunsafeじゃないと動かないんだよね。それ。
一年前にVB厨が見つけたけど、(2007/01/04) Microsoft様は「それは、俺たちが一年前(2006/05/18)にすでに通過した地点だ」と宣ったわけだw。
- 267 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 09:28:31 ]
- >208がVB厨より一年遅れともとれる。
所詮「MS」フィードバックともとれる。 MSがvistaと言ったら、XPのbugfixだなんて恐れ多くて言えない。
- 268 名前:208 mailto:sage [2008/02/17(日) 11:39:39 ]
- ソースを一行も読めない>239は >236までして必死になって人格攻撃をしましたが
毎日 MSを神と崇めるだけの仕事をしてきた彼には、>250のソースからFormat32bppArgbなどの単語を 得てやっとの思いで >265のログを見つけ出すのがやっとでした。 それに対して、私は>217を new Rectangle(0, 0, tmp.Width, tmp.Height)に改め、フォーマットの 変更や限定無しに、現行xpでもvistaでも正常に動作するソースを手に入れました。 更に上司にunsafeを使った高速化を提案し、「うちはそこまでしなくてもいいよ。だけど勉強熱心だね。」と褒められました。 アンチ信者は、「アンチ」の信者と言ったのはよく言った物で、正直私は「ご利益w」の様な物を感じました。
- 269 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:40:26 ]
- 訂正
>236 => >263
- 270 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:45:40 ]
- 誰もMS信者なんて居ないのに独りで正義気取り
カワイソス
- 271 名前:208 mailto:sage [2008/02/17(日) 11:50:23 ]
- ソースや文章には多くの目が加わるとより良くなるとは、
多くのプログラマやリファクタの心がける事とおもいます。 >270 ご指摘ありがとうございます。 正義では無く、私自信もひとつの「信者」と自嘲の意味を込めて書かせて頂きました。
- 272 名前:デフォルトの名無しさん [2008/02/17(日) 11:56:12 ]
- C#の質問じゃなくて.Net Frameworkの質問になっちゃうかもしれないけど
PixelFormt.*のフォーマットの定義 (PixelFormat.Format24bppRgbだったらB->G->Rの順で並んでいるbyte[]とか) ってどこにあるの。 教えてください。 あと、bmp.Dispose()とか必要なん? ガベコレがよきにはからってくれないの ?
- 273 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:59:09 ]
- うむ
これからも懺悔の心を忘れるなよwww
- 274 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:16:35 ]
- ソースを一行も読めない>239、とか
毎日 MSを神と崇めるだけの仕事をしてきた彼、とか 頭大丈夫か?少し休んだほうがいいぞ
- 275 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:41:20 ]
- >>272
無いんじゃね WPFにはあるんだけど 放置しててもそのうちファイナライザがGCに呼ばれてそこで解放されるけどあくまでフェイルセーフ
- 276 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:03:27 ]
- >>268
お前の成功物語は239が居なくても成立したように見える。 どこで239から利益を得たのかわからない。
- 277 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:15:23 ]
- 265 = 239 だからじゃね?
>265は役に立ってる。 (0,0,1,1)のままだとvistaで転けるからw。 . .. ... (0,0,1,1)なんて発想の方がでねーだろw。
- 278 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:41:13 ]
- コピペ君って馬鹿だな、まで読んだ。
- 279 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:44:04 ]
- >>274
空気読めてないようだねw 頭大丈夫?
- 280 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:45:05 ]
- >>278
コピペしてるお前が馬鹿だということが、よくわかった。
- 281 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:02:57 ]
- >>266
>Microsoft様は「それは、俺たちが一年前(2006/05/18)にすでに通過した地点だ」と宣ったわけだw。 宣ってない宣ってない。 2006/05/18のblogに載ってるのは、 「Orcasでは互換性を重視してるよ。そのためにRed and Greenモデルってのを入れたんだ」 って話で、Lockbitsの話はカケラも出ていない。
- 282 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:18:38 ]
- コピペ君って馬鹿だな、まで読んだ。
- 283 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:19:14 ]
- コピペ君って馬鹿だな、まで読んだ。
- 284 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:26:13 ]
- コピペ君って馬鹿だな、まで読んだ。
- 285 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:13:00 ]
- >272 が自分にも入り要な事に気づいたので、2匹目のドジョウを狙うぜ。
だけど24,32bit系しかカバーできなんだ。orz static void Main(string[] args) { Rectangle rect = new Rectangle(0, 0, 8, 8); PixelFormat[] PFlist = new PixelFormat[] { PixelFormat.Format32bppArgb,PixelFormat.Format32bppArgb,PixelFormat.Format32bppPArgb,PixelFormat.Format32bppRgb, PixelFormat.Format24bppRgb};//ゴメン 24,32bit系しかカバーできなんだ。 Color[] colors = new Color[] { Color.FromArgb(255, 0, 0),Color.FromArgb(0,255, 0),Color.FromArgb(0,0, 255), Color.FromArgb(64, 0, 0, 0)}; //用途に応じてココは増やした方が良いな。 foreach(PixelFormat pf in PFlist) { Bitmap src = new Bitmap(rect.Width, rect.Height, pf); foreach(Color cl in colors){ Graphics.FromImage(src).Clear(cl); Console.Write("{0}|{1,5}\t",pf.ToString(),cl.ToString()); unsafe{ BitmapData bmpdata = src.LockBits(rect, ImageLockMode.ReadOnly, src.PixelFormat); int pixwidth = bmpdata.Stride/bmpdata.Width; for (int i=0;i<pixwidth;i++) Console.Write("[{0,3}]", ((byte*)(void*)bmpdata.Scan0)[i].ToString()); src.UnlockBits(bmpdata); } Console.WriteLine(""); } Console.WriteLine("-----------------------------------"); } } 更に>275が書いた事が間違ってたら、 真にうけた俺は、更にバカだな。
- 286 名前:285 mailto:sage [2008/02/17(日) 15:20:54 ]
- あれ? コレじゃ俺がコピペ君みたいじゃないか。
えっと。 すまない。本当にコピペなんだ。orz
- 287 名前:285 mailto:sage [2008/02/17(日) 15:26:27 ]
- っていうか、コレ全然役にたたね。 実行しなくて良いです。
スレ汚し失礼しました。
- 288 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:29:06 ]
- >>272
.NET Frameworkの仕様というよりほとんどGDI+の仕様だけど、 ここに文章で書いてある。 ttp://msdn2.microsoft.com/en-us/library/ms534412.aspx
- 289 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:41:34 ]
- 272じゃないんだけど
Dispose()は単なるメソッドで、GCとは関係なく GCはいつ回収しにくるかわからないので、明示的に解放処理をしたい場合 IDisposableインターフェイスを実装してDispose()する という解釈で合ってるのかな?
- 290 名前:デフォルトの名無しさん [2008/02/17(日) 19:28:52 ]
- サテライトアセンブリを学んでいるところです。
そこで使われている Assembly Linker の al.exe はどこの場所に インストールされているものでしょうか。 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin (Resgen.exe、Winres.exe はここにありました) を見たり検索したりしてみたのですが見つかりませんでした。 すみませんがこれについて教えてください。
- 291 名前:290 mailto:sage [2008/02/17(日) 20:17:21 ]
- 確かにal.exeは見つからないままでしたが、少なくともVS2005で作成する
場合は、コード内で、現在のスレッドのカルチャ CurrentThread.CurrentUICulture にカルチャ情報 CultureInfo() を指定するだけで該当のリソースが使われる ようでした。al.exe は無くてもVSがやってくれるので問題ないのですね。
- 292 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 20:24:53 ]
- >>289
うん 直接アンマネージリソースを扱ってたりして特別な解放処理が必要なクラスなら もしDispose呼び忘れても死亡しないようにファイナライザも実装する
- 293 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:28:56 ]
- ResourceHoge.resx
ResourceHoge.ja.resx ResourceHoge.en.resx ... 等とするとVSが作ってくれて、実行時に選択してくれるのな
|

|