これは16x14ピクセルのビットマップのようです。私たちは2でバイト2を取るならば、我々が得る:
0x00, 0x00,
0x30, 0x00,
0x30, 0x00,
0x00, 0x00,
0x00, 0x00,
0x30, 0x00,
0x30, 0x00,
0x30, 0x00,
0x30, 0x00,
0x30, 0x00,
0x30, 0x00,
0x30, 0x00,
0x30, 0x00,
0x00, 0x00
さて、値0x30
のバイナリパターンは00110000
あるので、2×2画素ドット、および2×8ピクセルと感嘆符のように見えます垂直部分は、そのように(各行の一番右にあることから、唯一の一番左のバイトを保つ0またはブランクです):
00000000
00110000
00110000
00000000
00000000
00110000
00110000
00110000
00110000
00110000
00110000
00110000
00110000
00000000
もちろん、それはアップサイドダウンもあります。上記の情報を使用すると、たとえば次のような情報を作成できます。プレーンな古いBitmap
とそれを初期化するので、最終的にC#で表示されるものが得られます。もちろん、この非常に単純化されたイメージのために少し丸みを帯びているように聞こえますが、依然としてそうです。私は本当にC#の開発者ではないよ、このコードは非常に荒れていることを
byte[] input = new byte[] { 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00 };
glyph = new Bitmap(16, 14, System.Drawing.Imaging.Format1bppIndexed);
for(int y = 0; y < glyph.Height; y++)
{
int input_y = (glyph.Height - 1) - y; // Flip it right side up.
for(int x = 0; x < glyph.Width; x++)
{
bool on = input[2 * input_y + x/8] & (0x80 >> (x % 8));
glyph.SetPixel(x, y, on ? System.Drawing.Color.Black : System.Drawing.Color.White);
}
}
注:
はあなたのような何かをするだろう、ビットマップを初期化します。疑似コードとして扱います。
ここで「シンボル」とはどういう意味ですか? –
C++、C#、Cはこの質問の対象ですか? – pavanred
上記の例では、!変換時に。しかし、私はそれをどのように変換するのか分かりません。私は配列が何であるかを知りません。 C/C++で書かれているので、C#で使用する必要があります。 –