C#のSetPixel()について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
notebook

C#のSetPixel()について

#1

投稿記事 by notebook » 8年前

C#のSetPixelメソッドですが、これはピクセル単位でのColor値割り当てですから大変遅いですよね。実際300×300でこのメソッドを使用したところ0,3秒程かかりました。画像の大きさ分のColor値を全て配列に格納しておいて、一気に割り当てるメソッドはないでしょうか?無いにしても0,3秒はかかりすぎなので高速化したいのですが、方法はありますか?


notebook

Re: C#のSetPixel()について

#3

投稿記事 by notebook » 8年前

だんごさん
ありがとうございます!!

r,g,b,grayの操作を直接できるんですね。
載せて頂いたプログラムではグレーにするそうですが、r,g,bだけいじってgrayとかはよくわからないから触りたくないんですが、これはどう扱えばいいんでしょうか?

notebook

Re: C#のSetPixel()について

#4

投稿記事 by notebook » 8年前

http://www.84kure.com/blog/2014/07/13/c ... %E3%82%B9/

このページ大変参考になりますが、読み込む画像を黄色にして方法3: ビットマップをシステムメモリにロックして直アクセスする (バイト単位)でi=0のときのr,g,bを表示したところ0,242,254となっていました。ところがr=0 g=242 b=254のとき、RGB値を指定して色を表示するサイトで試したところ水色になっていました。もしかしてbyte r,g,bで読み込んだ値って実は、順番が逆なんでしょうか? RGBではなくBGRで読み込まれるんでしょうか?

だんごさん
記事: 273
登録日時: 12年前

Re: C#のSetPixel()について

#5

投稿記事 by だんごさん » 8年前

notebook さんが書きました:もしかしてbyte r,g,bで読み込んだ値って実は、順番が逆なんでしょうか?
よく見たらその可能性がありますね。
その方法でやるのでしたら、Bitmap処理を高速化するサンプル こちらが分かりやすいかと思います。
 Dango San

notebook

Re: C#のSetPixel()について

#6

投稿記事 by notebook » 8年前

だんごさん、ありがとうございます。サイトの方法でうまくいったのでこの話題は終了ということにさせていただきます。

notebbok

Re: C#のSetPixel()について

#7

投稿記事 by notebbok » 8年前

解決ボタン押し忘れました。

閉鎖

“C言語何でも質問掲示板” へ戻る