[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 12/07 23:51 / Filesize : 174 KB / Number-of Response : 788
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part45



1 名前:デフォルトの名無しさん [2008/01/21(月) 19:35:37 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。

前スレ
C#, C♯, C#相談室 Part44
pc11.2ch.net/test/read.cgi/tech/1194956418/

その他テンプレ>>2-5くらい

161 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:38:06 ]
>>158
処理系が欠陥だと言い切るような自信がどこから湧くのか理解できんが、
生成されてるILすら比較してみていないような感じだな。

162 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:47:51 ]
まったくだ

163 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:50:27 ]
ポカやってるのは>>158でFAなのはコード見なくてもわかるけど
とりあえずDebugとReleaseで
プロジェクトのプロパティ→ビルド→詳細設定→演算のオーバーフロー/アンダーフローのチェック
のチェックボックスの状態がちがうんじゃね?

164 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:14:46 ]
Debugでは出ない例外がReleaseで出たのは経験あるな
よく覚えてないけどList<T>.Sortか何かで渡した自分のIComparer<T>の実装が間違ってたのが原因だった

165 名前:デフォルトの名無しさん [2008/02/09(土) 09:47:27 ]
長いコード貼るなら
pastebin.windy.cx/
pastebin.com/
こういうところだと色分けとかもできる

166 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:17:22 ]
怠け者で探しきれてなくてすみません。
MonthCalenderで、指定日をハイライトするメソッドをご教授ください。

167 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:22:48 ]
SetDateか。自己解決下っぽい。ありがとうございました。

168 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:25:49 ]
しかも 初心者板と勘違いした。
重ね重ね申し訳ない。orz

169 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:34:42 ]
ほ、ほーっ、ホアアーッ!! ホアーッ!!



170 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:15:54 ]
vjs.dllだとファイル数多いと例外なげたりとバグってたりするんですけど
C#でお手軽にZIP作る方法ないですか?

171 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 02:36:47 ]
SharpZipLibとか

172 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 02:39:18 ]
シェルにやらせればいいんじゃね

173 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 03:35:13 ]
zip.exe叩いた方が楽でね?

174 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 07:53:49 ]
zipfldr.dll
…ってシェルと同じかも

175 名前:デフォルトの名無しさん [2008/02/12(火) 08:45:53 ]
Processでstartinfoに
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
指定して、zip.exe起動すれば、dos窓でないから
一番楽だと思うが。

176 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:38:56 ]
統合アーカイバプロジェクトに登録されてるのはだめなの?
そのうちファイラ作ろうと思ってるんだけど。
ttp://www.madobe.net/archiver/dev/main.html#csharp

177 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:38:27 ]
もしかして、.NET Framework 2.0からZIPを操作するクラスが入ったのを知らない人多い?

178 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:46:38 ]
うん

179 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:49:52 ]
GZipは扱えるがZipファイルは扱えねぇなあ。
まあヘッダ処理だけ書けば大体対応できるけどね。



180 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:49:59 ]
それGZIPだし
ZIPじゃないし

181 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:59:17 ]
読み取り専用のDictionaryはないの?

182 名前:デフォルトの名無しさん [2008/02/12(火) 20:12:09 ]
ListViewでItemを追加してEndUpDateすると、全部のItemが再描画
されてしまいます。そこでそのちらつきを出さない方法についてこちら
でおききしていました。>pc11.2ch.net/test/read.cgi/tech/1197507828/859

その中のソースがC#なのでC#スレでお訊きします。よろしくです。
CodeProject Flicker-free ListView in .NET and XP. Free source code and programming help
www.codeproject.com/KB/list/listviewxp.aspx
にあるサンプルを試してみたのですが、DEMO版がうまくいくのにソース版
ですよ対策なしと同じでした。

ListViewのDoubleBufferingはちらつき防止に効果あるでしょうか?
またowner draw にした場合は自分でItemを描画する必要があるのでしょうか。
よろしくお願いします。


183 名前:182 [2008/02/12(火) 20:18:38 ]
>>182 訂正>ソース版ですよ対策なしと同じ -> ソース版ですと対策なしと同じ

該当のサイトでは
public void SetExStyles()
{
LVS_EX styles = (LVS_EX)SendMessage(this.Handle,
(int) LVM.LVM_GETEXTENDEDLISTVIEWSTYLE, 0,0);
styles |= LVS_EX.LVS_EX_DOUBLEBUFFER | LVS_EX.LVS_EX_BORDERSELECT;
SendMessage(this.Handle,
(int) LVM.LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (int) styles);
}

のようなコードがありました。これはDoubleBufferを使っているようなのですが、
owner draw はしてないようでした。一方、このサイトへのコメントレスとして
ついていたものでは、owner draw にしておいて
 this.SetStyle(ControlStyles.OptimisedDoubleBuffer, True);
とするだけでちらつきはなくなるようなことが書かれていましたが、これは
自分で描画してやらないといけないようでその場合どのように描画すれば
よいのかわかりませんでした。自分で描画しないでも可能なような意味にも
取れてよくわからないのでした・・・

すみませんが、何卒よろしくお願いします。

184 名前:デフォルトの名無しさん [2008/02/13(水) 00:08:14 ]
すみません、よろしければ
pc11.2ch.net/test/read.cgi/tech/1200911737/182-183
について教えてください。何卒よろしくお願いします。


185 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:10:26 ]
>>184 は pc11.2ch.net/test/read.cgi/tech/1162467959/
への出張の間違いでした。すみません。)

186 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:46:50 ]
zipの質問したものです

みなさん、ありがとうございました

統合アーカイバプロジェクト(7-zip32.dll)
undll.exe
System.Process

でやってみることにしました
やってみると進行度合をウィンドウで表示してくれてちょっと鬱ですがとりあえず動いています
(zip32.dllは長い名前に対応してないとか?はっきりしなかったので)

187 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:10:36 ]
>>176
統合アーカイバプロジェクトのzipは処理速度遅いよ

188 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 13:14:46 ]
>>187
代替案しめさないと意味のないコメント

189 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:25:47 ]
zipってオープンソースじゃなかったっけ



190 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:29:55 ]
統合アーカイバプロジェクトなんつってる割には
インターフェースが統一されてなくて使いにくいんだよな

191 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:31:45 ]
素人だからな。

192 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:58:33 ]
C++/CLIでうまいことやってくれないもんかな

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 ]
ここはラム板だっちゃ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<174KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef