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
aEncoding: `A` (ASCII hex, default), `B` (binary), `C` or `Z` (Zebra LZ77-compressed)
bTotal bytes that will be sent (after decoding for ASCII; compressed length for `Z`)
cTotal bytes in the resulting bitmap (uncompressed). For ASCII/binary equals `b`; for compressed `b < c`.
bprBytes per row of the bitmap. Image width in pixels = `bpr * 8` (1 bit per pixel, MSB-first).
dataEncoded bitmap payload. Linewise hex for `A`; raw bytes for `B`; LZ77 stream for `Z`/`C`.

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