Plain English

Embeds a 1-bit-per-pixel bitmap directly in the ZPL stream. Three encodings: **A** (ASCII hex — portable, ~2× larger), **B** (binary — smaller but printer must accept binary safely), **Z**/**C** (Zebra LZ77-compressed — smallest, ideal for slow links). You normally do not author this by hand — a converter (`zebra-image-converter`, ImageMagick + script, or rfid.me's image tool) turns a PNG / SVG / logo into the `^GF` data.

When to use

For company logos, icons, or any one-off image on a label. For repeat-use logos, store once with `~DG` then recall with `^XG` — much less data per label. Choose encoding by transport: ASCII (`A`) for safety, compressed (`Z`) for slow serial links, binary (`B`) for fastest local USB.

Syntax

^GFa,b,c,bpr,data

Parameters

ParameterDescription
a
Encoding: `A` (ASCII hex, default), `B` (binary), `C` or `Z` (Zebra LZ77-compressed)
b
Total bytes that will be sent (after decoding for ASCII; compressed length for `Z`)
c
Total bytes in the resulting bitmap (uncompressed). For ASCII/binary equals `b`; for compressed `b < c`.
bpr
Bytes per row of the bitmap. Image width in pixels = `bpr * 8` (1 bit per pixel, MSB-first).
data
Encoded bitmap payload. Linewise ASCII hex (`A`), or a ZB64 envelope: `:B64:<base64>:<crc>` (base64 of raw bytes) or `:Z64:<base64>:<crc>` (base64 of zlib-deflated bytes). The `<crc>` is a CRC-16/XMODEM over the base64 text. All three forms render in the playground.

Example

^XA
^FO50,50
^GFA,48,48,2,
FFFF
C003
BFFD
BFFD
C003
FFFF
^FS
^XZ

6 rows × 2 bytes/row = a 16-pixel-wide × 6-tall bitmap (`A` ASCII hex). For real logos, generate with a converter — the encoding is rarely written by hand.

Try it in the playground View all ZPL commands