Skip to main content

PNG / JPEG images

Status

FieldValue
Extension(s).png, .jpg, .jpeg
Common ecosystemRaster artwork
Format familyArtwork/reference input
Satin Studio statusPlanned
Open / importNo
ExportNo
ConfidenceHigh for artwork role.

What it is

Raster images are common starting artwork or references, but they do not contain embroidery semantics.

Satin Studio direction

Future import should use them as reference layers or assisted-digitizing inputs, not automatic guaranteed stitch conversion.

Versions and variants

This entry is tracked as a format lead, but Satin Studio does not yet have a public version or dialect matrix for it. Real sample files with machine/software provenance are needed before support can be planned safely.

File identification notes

Standard raster image files.

Observed structure notes

  • PNG stores chunks after an eight-byte signature. JPEG stores marker-delimited segments between SOI FF D8 and EOI FF D9.
  • Raster images are source/reference pixels. They need tracing or assisted digitizing before embroidery objects or stitches exist.
  • PNG chunks use big-endian length, four-byte chunk type, payload, and CRC. The first critical chunks normally include IHDR; image data lives in one or more IDAT chunks; IEND terminates the file.
  • JPEG files are marker streams. Dimensions and color information are discovered from frame and scan markers, not from a fixed header size.

Structure sketch

Raster images are reference artwork. Their bytes describe pixels, not stitches.

enum RasterArtwork<'a> {
Png { signature: [u8; 8], chunks: &'a [PngChunk<'a>] }, // 89 50 4E 47 0D 0A 1A 0A
Jpeg { soi: [u8; 2], segments: &'a [JpegSegment<'a>] }, // FF D8 ... FF D9
}

struct PngChunk<'a> {
length: u32,
chunk_type: [u8; 4],
data: &'a [u8],
crc: u32,
}

struct JpegSegment<'a> {
marker: u8,
payload: &'a [u8],
}

What we still need

Reference-layer UI and trace/vectorize workflows.