みなさんこんにちは。いいんちょです。
さて、今回は印字作業で使用される画像データについてのお話しです。
画像データと一言で言ってもBMP(ビットマップ)、JPEG、TIFF、PNG、GIF・・・多くのフォーマットが存在していています。それぞれに特徴を持っているのですが、トヨトモにあるプリンタの一つ、モノクロインクジェットプリンタでは制約が多くモノクロBMP形式しか使用できないため、BMPをあれこれしないといけない状況が発生します。
文字をアミにしてにじみを軽減したり、文字を装飾したりと様々な用紙や商品に対応する必要があります。
そのあれこれをするためにBMPを解析してみましょう。
まずはペイントで作成したモノクロBMPの「あ」を
バイナリエディタで開きます。
ヘッダー情報としてデータサイズ(02~05)がBE、画像データまでのオフセット(0A~0D)が3E、幅(12~15)が20、高さ(16~19)が20、色数(1C~1D)が01であることが分かり(その他の情報もありますが割愛^^;)、オフセット位置(3E)以降に画像データが並び、1ビット0、1で白黒が表現されています。
また、画像データ部分は幅が4byte区切りになるよう不足する部分は0で埋められ、下から上へとボトムアップ形式で格納されます。
これらを理解するため毎度ですが、Excelを使用してVBAで簡単なマクロを組んでみましょう。
先程作成した「あ」をバイナリデータとして読み込み、ヘッダーより取得した情報を元に、2進数に変換したデータ部を1ピクセル=1セル単位で配置していきます。0と1出力だと分かりづらいので0をグレーで塗りつぶすとこんな感じに。
データの先頭から配置したので上下が反転してしまいました。
データはボトムアップ形式なので描写順をデータの最後からに変更し左から出力することで、BMP画像と同じ絵柄をExcelで再現できます。
このようにして読み込みしてみるとBMPの構造が視覚的に分かりますね。
最終的にはこの処理を元にBMP画像をアミ掛け、白黒反転、袋文字、回転等できるプログラムを組み、インクジェット用フォントを作成しています。
モノクロは1ピクセル=1ビットでしたが、多色のBMPの場合は1ピクセルを表現するのに、グレースケールであれば1byte、24bitカラーであればRGB で3byte、32bitカラーであればARGBで4byteを必要とします。
それらを応用して「株式会社トヨトモ」の文字だけを使用し、トヨトモを表現してみましょう。
元になるグレースケールのトヨトモ画像を用意します。
BMPの情報をExcelに読み込み、それぞれのピクセルの階調に応じ画数順に文字を出力させます。今回は画数の多い(濃い)株>社>式>会>ヨ>モ>ト(薄い)順としました。
モニタの解像度では限界があるのでA3用紙に出力してみます。
遠目に見るとそれっぽいですよね(=_=)ジー。
近づいてみると・・白以外の全てのセルが「株式会社トヨトモ」のいずれかの文字で埋められています。^^;
実際は「会」の文字の方が「社」よりも濃く見えるなど画数=濃度とはならなかったので、白黒の比率を計算した上での文字の選択の必要がありそうですが、これを利用すればモザイク絵や用紙を並べて大きな絵を表現することができそうです。
今回解説したBMPはインクジェットプリンタの出力形式となりますが、カラーオンデマンド、他形式の画像を出力可能なプリンタもございますので、ご要望等ございましたら営業までご相談ください。
以上、いいんちょでした。
この記事を書いた人
- トヨトモHP管理委員会の委員長を任されています、いいんちょです。みなさんにトヨトモの魅力を知って頂けるよう、商品情報から活動報告まで、肩の力を抜いて読んで頂けるブログを目指します。
この投稿者の最近の記事
- 雑記2024年4月30日大物を狙ってみる
- 雑記2023年2月27日読めなかったQRを検証してみる
- 雑記2022年7月22日Excelはなかまになりたそうにこちらをみている
- 雑記2021年9月27日ラベルデザインソフトを作成してみる