ベクターベースのジェネレーターはバーコードを生成するための最良の方法ですか?はいの場合、それが利用する名前空間は何ですか?どのように使用されますか?誰かがこれについていくつかの知識を共有できますか?
2 に答える
バーコードのようなUPCについて話していると仮定すると、ベクトルベースの生成は必須ではありません。それは、いくつかのビットを垂直線として表すことの問題です。したがって、任意のグラフィックライブラリを使用して、またはビデオバッファへの直接アクセスを使用して、これを簡単に行うことができます。より大きなバーコードが必要な場合は、1つのビットを複数のピクセルで表すことができます。私が推測する補間を使用する必要はありません。ただし、特定のサイズ(ピクセル/センチメートルなど)が必要な場合は、ベクトルベースのソリューションが役立つ場合がありますが、それでも必須ではありません。
スケーラブルなバーコードグラフィックを生成するためのC#ソースコードの例。
手順:
1)という名前の新しいC#Windowsフォームサンプルプロジェクトを開きBarCode
ます。
2)を追加し、とにPictureBox
変更BackColor
します。White
Dock
Fill
3)にイベントを追加Load
します。Resize
Form1
4)以下のソースコードをコピーしてForm1.cs
ファイルに貼り付けます。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace BarCode
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public bool[] barCodeBits;
private void Form1_Load(object sender, EventArgs e)
{
Random r = new Random();
int numberOfBits = 100;
barCodeBits = new bool[numberOfBits];
for(int i = 0; i < numberOfBits; i++) {
barCodeBits[i] = (r.Next(0, 2) == 1) ? true : false;
}
Form1_Resize(null, null);
}
private void Form1_Resize(object sender, EventArgs e)
{
int w = pictureBox1.Width;
int h = pictureBox1.Height;
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(pictureBox1.Image);
Brush b = new SolidBrush(Color.Black);
for(int pos = 0; pos < barCodeBits.Length; pos++) {
if(barCodeBits[pos]) {
g.FillRectangle(b, ((float)pos / (float)barCodeBits.Length) * w, 0, (1.0f / (float)barCodeBits.Length) * w, h);
}
}
}
}
}
ベクターベースのグラフィックを使用してバーコードを開発する必要はありません。ほとんどの作業はすでに完了しているので、実際にはcodeprojectのこのリンクを参照してください。これにより、必要なバーコードのビットマップが生成されます。