2021 advent calendar day 7

画像の表示

文字ばっかりでつまらないので画像を表示

from escposjp import Network

p = Network("192.168.10.21")
p.hw("INIT")
p.JpInit()
p.JpText("画像テスト\n")
p.image(img_source="hatotank_a.png",impl="graphics")
p.cut()

出力時に以下のメッセージ出てるけど気にしない(古い機種なのにライブラリに登録無いの?後日とする)

The media.width.pixel field of the printer profile is not set. The center flag will have no effect.

implに指定できるのは「bitImageRaster」「graphics」 「bitImageColumn」の三つ、デフォルトは「bitImageRaster」

  • bitImageRasterは GS v 0 コマンド…非推奨コマンド
  • graphicsは GS ( L コマンド…こちらを使用するのが通常っぽい、印刷色の指定が可能!?、ドット単位のサイズ指定が可能
  • bitImageColumnは ESC * コマンド…正直今はよくわからない
    ※色は特定のサーマルロール紙でできるらしい。販売終了してるけど (https://www.epson.jp/products/supply/shoumouhin/data/shoumouhin/ntp080-rb.htm)

ツイッターのアイコンらしく少し加工

from escposjp import Network

# 画像加工 Start
from PIL import Image,ImageDraw

im_icon = Image.open("hatotank_a.png")
im_mask = Image.new("L", im_icon.size, 0)

draw = ImageDraw.Draw(im_mask)
draw.ellipse((0,0, 100,100), fill=255)
im_icona = im_icon.copy()
im_icona.putalpha(im_mask)
# 画像加工 End

p = Network("192.168.10.21")
p.hw("INIT")
p.JpInit()
p.JpText("画像加工テスト\n")
p.image(img_source=im_icona,impl="graphics")
p.cut()


画像2枚とか印刷したけど改行され一緒のラインに出なかったりと、
以下の様にしたいんだけど、ページモードを使用しないとだめ?
また明日。
──────────────
┌────┐ twitterの名前
│アイコン│
└────┘ 投稿日時
……………………………………
投稿内容
~省略~
~省略~
~省略~
──────────────

タイトルとURLをコピーしました