-2

画像に対して特定の編集を自動的に実行するプログラムを作成しています。

関数の 1 つは、「白」ピクセルを「白」および透明に変換することです。最初は、すべて順調です。

必要なピクセルをすべて透明にして、24bppRGB イメージを 32bppRGB イメージに変換することができました。

画像はピクチャーボックスに読み込まれ、保存すると開くことができます。

ファイルを再編集しようとしたときに問題が発生しました。生のピクセルデータを再度抽出しようとしたとき、何も得られませんでした。私が知る限り、ピクセル データ配列全体は 0 です。

これはなぜですか?

↑これが私の主な質問です。その問題以外にも、プログラムにいくつかの癖があることに気付きました。これらは単なる好奇心によるものです。

次の違いは何ですか:

for(int i = 0; i < (x + 1); i += y)

for(int i = 0; i <= (x); i += y)

また:

byte = 4;
for(int i = 0; i < x - byte; i += byte)

for(int i = 0; i < x - byte; i += 4)

2 つ目は、ビットマップのロックを解除したときに AccessViolationException を引き起こしました。

できれば、説明はできるだけ簡潔にしてください。私はこれでかなり新しいです。御時間ありがとうございます。

4

1 に答える 1

1

ここでは、ビットマップを簡単に操作する方法について、例を挙げてちょっとしたヒントを紹介します。

ps 差:

for(int i = 0; i < (x + 1); i += y)

for(int i = 0; i <= (x); i += y)

y値に依存します。

于 2012-04-18T11:20:33.730 に答える