CODE39とCODE128のデータ容量をおしえてください

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/08/06 08:47:49
  • 終了:2009/08/13 08:50:02

ベストアンサー

id:ardarim No.4

ardarim回答回数896ベストアンサー獲得回数1442009/08/08 02:49:37

ポイント22pt

pahooさんにしては珍しく?トンチンカンな回答をしていますね。専門外なんでしょうか。

JANはそもそも数字のみしか表現できないシンボル規格です。CODE39とJANはまったく別のシンボル規格です。キーエンスのページでもちゃんと読めばわかるはずなのですが…。


CODE39、CODE128とも規格上は符号化できる桁数に制限はありません。ただし、世の中のバーコードリーダーは無限の幅のバーコードを読むことができるわけではありませんので、バーコードリーダーの性能(読み取り幅)によって事実上の桁数が制限されます。


CODE39の1キャラクタは、5本のバーとその間の4つのスペースの組み合わせで決まります。バーまたはスペースは細/太の2種類の幅の組み合わせがあり、1キャラクタ中には5つの細幅と3つの太幅が組み合わされます。規格上これらの要素の組み合わせで1キャラクタ辺り44通りの組み合わせを持ちます。規格上細幅の最小は0.191mmであり、この時細幅と太幅の比率は1:2.2~3.0と決まっているため、太幅の最小は0.191*2.2=0.420mmです。

1キャラクタ辺り細幅5つと太幅3つで構成されるので、理論上の1キャラクタの最小は2.216mmです。

またCODE39ではキャラクタとキャラクタの間にキャラクタ間ギャップをおく必要があり、細幅0.191mmの時の最小キャラクタ間ギャップは0.160mmのため、キャラクタ間ギャップを加えると1キャラクタ当たりの最小幅は2.376mmです。

換算すると、CODE39ではもっとも精細な印刷を行った場合、1mmあたり0.421桁の表現が可能です。(ただし、この他にバーコードの前後にスタートキャラクタ、ストップキャラクタ、クワイエットゾーン(バーコード間の緩衝領域)が必要になります)


CODE128の1キャラクタは、3本のバーと3本のスペースのそれぞれの4種類の幅の組み合わせで決まります。規格上これらの組み合わせで1キャラクタ当たり103通りの組み合わせを持ちます。規格上一番細い幅の最小は0.191mmであり、1キャラクタの幅は一番細い幅の11倍になるため、2.101mmとなります。

換算すると、CODE128ではもっとも精細な印刷を行った場合、1mmあたり0.476桁の表現が可能です。(数字と英字が混在するバーコードの場合)(ただし、この他にバーコードの前後にスタートキャラクタ、ストップキャラクタ、チェックディジット、クワイエットゾーンが必要になります)

また、CODE128は数字のみのバーコードの場合は2桁を1キャラクタ分にパックして倍の密度で効率的に符号化することが可能なため、1mmあたり0.952桁となります。(数字のみで構成されるバーコードの場合)


なお、CODE128はバーコード規格上は1キャラクタ当たり103種ですが、理論上ASCIIコード128種や、あるいは半角カナやシフトJISコードを含めた8bitコードの符号化も可能です。ただしこの場合特殊な符号化が必要となるため、1文字の符号化にバーコードシンボルの1キャラクタ以上が必要となり、1mmあたりの情報量はその分減少します。


また、上記の値は規格が認めるところのもっとも精細なバーコードを印刷した場合の理論上の数値なので、バーコードリーダーの読み取り性能によっては読みにくい、あるいは全く読めないバーコードになってしまう可能性があります。読みやすくするにはバーコードを拡大することになり、1mmあたりの情報量(桁数)はその分減少します。


参考:http://www.barcode.ne.jp/about_barcode/index.html

その他の回答(3件)

id:takerudayo No.1

takerudayo回答回数165ベストアンサー獲得回数292009/08/06 09:52:26

ポイント23pt

CODE39とかCODE128というのはバーコードの規格を指していると思われますが、

この規格はただの表現の決まりでしかないので容量というものはありません。


たぶんstepwgn24zさんはWindowsパソコンにCODE39のフォントを追加するとして、

そのフォントのサイズはどんなものか?という事を問いたいのだと思われますが、

質問の意図はあっていますでしょうか?


もし質問の意図があっているとした場合、しかしデータ容量というのは一概には言えません。

理由は「CODE39が表示できるフォント」といわれる製品はいろいろなメーカから多種販売されているからです。

各メーカによって製品が違うため、それぞれフォントのサイズが違うという答えになります。


これはたとえ、WindowsではなくてMacOXやUnixやLinuxや組み込み機器向けだとしても事情は同じです。


参考に、今手元にあるCODE39のWindows用フォントのファイルサイズは、6172バイトの容量でした。

ちなみに株式会社テクニカル Technical Corp Web Siteという会社さんのフォントは17キロバイトだそうです。

id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/08/06 10:23:12

ポイント23pt

ご質問にある「容量」というのは、バーコードに含まれことができる情報量と解釈し、回答いたします。


CODE39は、英数字と幾つかの記号を含めた計43個の文字を表すためのバーコードの規格です。コード1つにつき5.4ビットの情報量があるという計算になります。

CODE128は、英数字と記号を含むアスキー文字計128個の文字を表すためのバーコードの規格です。

いずれも、並べる文字の数に制限はありません。コード1つにつき7ビットの情報量があるという計算になります。


CODE39を並べて作られるバーコードの1つがJANコードです。8桁のものと13桁のものがあります。8桁のものは5.4バイト(43.4ビット)、13桁のものは8.8バイト(70.5ビット)の情報量があるという計算です。


CODE128を並べて作られるバーコードの1つがEAN-128(GS1-128)です。桁数は不定なのですが、コンビニ料金収納コードの場合は42桁と定められています。したがって、294バイトの情報量があることになります。


参考サイト

id:HALSPECIAL No.3

HALSPECIAL回答回数407ベストアンサー獲得回数862009/08/06 10:39:23

ポイント22pt

文字数は自由です。


バーコードの種類

CODE39

・数字(0~9)

・記号(- . $ + / % スペース)

・アルファベット

大文字(A~Z)

・スタートストップ

      キャラクタ

(* アスタリスク)

・文字数自由

CODE128

・フルアスキー128文字

{数字(0~9)/記号/アルファベット(大文字/小文字)/制御コード等すべて}

・文字数自由




バーコードを作りたいんですが。

NW7、ITF、CODE39、CODE128あたりなら文字数は自由です。

id:ardarim No.4

ardarim回答回数896ベストアンサー獲得回数1442009/08/08 02:49:37ここでベストアンサー

ポイント22pt

pahooさんにしては珍しく?トンチンカンな回答をしていますね。専門外なんでしょうか。

JANはそもそも数字のみしか表現できないシンボル規格です。CODE39とJANはまったく別のシンボル規格です。キーエンスのページでもちゃんと読めばわかるはずなのですが…。


CODE39、CODE128とも規格上は符号化できる桁数に制限はありません。ただし、世の中のバーコードリーダーは無限の幅のバーコードを読むことができるわけではありませんので、バーコードリーダーの性能(読み取り幅)によって事実上の桁数が制限されます。


CODE39の1キャラクタは、5本のバーとその間の4つのスペースの組み合わせで決まります。バーまたはスペースは細/太の2種類の幅の組み合わせがあり、1キャラクタ中には5つの細幅と3つの太幅が組み合わされます。規格上これらの要素の組み合わせで1キャラクタ辺り44通りの組み合わせを持ちます。規格上細幅の最小は0.191mmであり、この時細幅と太幅の比率は1:2.2~3.0と決まっているため、太幅の最小は0.191*2.2=0.420mmです。

1キャラクタ辺り細幅5つと太幅3つで構成されるので、理論上の1キャラクタの最小は2.216mmです。

またCODE39ではキャラクタとキャラクタの間にキャラクタ間ギャップをおく必要があり、細幅0.191mmの時の最小キャラクタ間ギャップは0.160mmのため、キャラクタ間ギャップを加えると1キャラクタ当たりの最小幅は2.376mmです。

換算すると、CODE39ではもっとも精細な印刷を行った場合、1mmあたり0.421桁の表現が可能です。(ただし、この他にバーコードの前後にスタートキャラクタ、ストップキャラクタ、クワイエットゾーン(バーコード間の緩衝領域)が必要になります)


CODE128の1キャラクタは、3本のバーと3本のスペースのそれぞれの4種類の幅の組み合わせで決まります。規格上これらの組み合わせで1キャラクタ当たり103通りの組み合わせを持ちます。規格上一番細い幅の最小は0.191mmであり、1キャラクタの幅は一番細い幅の11倍になるため、2.101mmとなります。

換算すると、CODE128ではもっとも精細な印刷を行った場合、1mmあたり0.476桁の表現が可能です。(数字と英字が混在するバーコードの場合)(ただし、この他にバーコードの前後にスタートキャラクタ、ストップキャラクタ、チェックディジット、クワイエットゾーンが必要になります)

また、CODE128は数字のみのバーコードの場合は2桁を1キャラクタ分にパックして倍の密度で効率的に符号化することが可能なため、1mmあたり0.952桁となります。(数字のみで構成されるバーコードの場合)


なお、CODE128はバーコード規格上は1キャラクタ当たり103種ですが、理論上ASCIIコード128種や、あるいは半角カナやシフトJISコードを含めた8bitコードの符号化も可能です。ただしこの場合特殊な符号化が必要となるため、1文字の符号化にバーコードシンボルの1キャラクタ以上が必要となり、1mmあたりの情報量はその分減少します。


また、上記の値は規格が認めるところのもっとも精細なバーコードを印刷した場合の理論上の数値なので、バーコードリーダーの読み取り性能によっては読みにくい、あるいは全く読めないバーコードになってしまう可能性があります。読みやすくするにはバーコードを拡大することになり、1mmあたりの情報量(桁数)はその分減少します。


参考:http://www.barcode.ne.jp/about_barcode/index.html

  • id:stepwgn24z
    皆さん回答ありがとうございました。
    特に容量はないのですね。勘違いしていました。
    どうもありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません