2008年01月01日

グラフィック液晶用8ドットフォント

幅 7ドットで描くか 6ドットで描くか 5ドットで描くか考えたけど、幅狭くしても一行に 2文字増えるくらいだからと 7ドットにした。

せっかくだから、変換プログラムも書いた。初めて使う Visual C# 2008 Express Edition で 6時間もかかって作った。ライブラリの説明書が、どこ読んでいいのかさっぱりわからんです。

Visual C# 2008 Express Edition はマイクロソフトから無償でダウンロードして使えるのでありがたい。


namespace test
{
public partial class Form1 : Form
{
private Bitmap bmp = null;

public Form1()
{
InitializeComponent();

bmp = new Bitmap("8dot_font.bmp");
pictureBox1.Image = bmp;

}

private void button2_Click(object sender, EventArgs e)
{
int x, y, a,count=0;

richTextBox1.Text += "start
";

for (y=0; y<12; y++)
{
for (x=0; x<128; x++)
{
a=0;
if (bmp.GetPixel(x, y * 8 + 0).G < 100) a += 0x01;
if (bmp.GetPixel(x, y * 8 + 1).G < 100) a += 0x02;
if (bmp.GetPixel(x, y * 8 + 2).G < 100) a += 0x04;
if (bmp.GetPixel(x, y * 8 + 3).G < 100) a += 0x08;
if (bmp.GetPixel(x, y * 8 + 4).G < 100) a += 0x10;
if (bmp.GetPixel(x, y * 8 + 5).G < 100) a += 0x20;
if (bmp.GetPixel(x, y * 8 + 6).G < 100) a += 0x40;
if (bmp.GetPixel(x, y * 8 + 7).G < 100) a += 0x80;

richTextBox1.Text += String.Format("0x{0:X2},",a);

count++;
if (count > 15)
{
richTextBox1.Text += "
";
count = 0;
}
}
}
richTextBox1.Text += "
end";
}
}
}


たった、これだけを書くのに 6時間。

でもこれだけしか書いてないのに、画像の読み込みとか表示とかできてる。なんかすごい。
posted by りお at 20:24| コンピュータ関連 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。