Android用のMono For Android経由で携帯型ブルートゥースプリンタにビットマップを印刷するためのクラスを作成しています。私のクラスはストリームからピクセルデータを取得するために使用されるので、正しい形式でプリンタに送ることができます。今はクラスがシンプルで、高さ、幅、ピクセルあたりのビット数だけを読み込みます。バイト配列のビットマップを垂直方向に反転するアルゴリズム
オフセットを使用して、ピクセルデータを読み取り、プリンタに返します。今は、1ピクセルあたり1ビットの白黒画像で作業しています。私が作業しているビットマップはWindows形式です。
ここで原画像である:
ここで印刷の結果である、第一の画像は、任意の変換なしです。 2つ目は、次のコードでBitArrayを変更した結果は次のとおりです。
BitArray bits = new BitArray(returnBytes);
BitArray flippedBits = new BitArray(bits);
for (int i = 0, j = bits.Length - 1; i < bits.Length; i++, j--)
{
flippedBits[i] = bits[j];
}
、私の質問は:
私はバイト配列で働いていたとき、私は垂直方向に画像を反転するにはどうすればよいです。私はこれを行うためのアルゴリズムを見つけるのに苦労している、すべての例は私が使用することができない確立されたグラフィックスライブラリを使用することを示唆しているようだ。行順にwidth*height
ビットの形式について
マイビットマップが1次元配列に保存され、最初の行のバイトと、その後、第二、第三、等
あなたは、マトリックス中に画像のピクセルを番号を交換するアルゴを探しているので、画像を回転させますか? – Adrian
@Adrianはい、イメージが正しい向きで印刷されるように配列を変更する必要があります。私は、フォトショップや他のペイントプログラムで "フリップ垂直"コマンドを実行するアルゴリズムを探しています。 – dmck
ビット配列に 'width * height * bits_per_pixel'ビットが含まれるような形式ですか?もしそうなら、 '[first_row | second_row | ...]'の形式で整理されていますか? –