Skip to contents

Validates that an artwork has been signed by the artist before certification. Use this as the first verification step during artwork upload - unsigned canvases should be rejected and the artist prompted to add their signature in Procreate.

This check is required before calling `renderCertificate()` since certificates must only be issued for signed artwork.

Usage

isCanvasSigned(path)

Arguments

path

Character. Path to `.procreate` canvas file - accepts local filesystem paths or CDN URLs. For uploaded artworks, obtain the URL from `artutils::path_art_canvas(artist, artwork)`. The file must be a valid Procreate ZIP archive containing the standard layer structure.

Value

Logical. `TRUE` if the signature layer exists and contains non-transparent pixels (i.e., the artist actually drew something). `FALSE` if signature layer is missing, empty, or file extraction fails. Never throws errors - returns FALSE for any invalid input to simplify conditional logic.

Details

Procreate files are ZIP archives containing layer data. This function: 1. Copies file to temp location 2. Extracts `Signature/Signature.png` 3. Checks if signature contains non-transparent pixels

Returns FALSE (not errors) if signature layer is missing or extraction fails.

See also

Other image-verify: image_phash()

Examples

if (FALSE) { # \dontrun{
# Check local canvas file
isCanvasSigned("path/to/artwork.procreate")

# Check canvas from CDN URL before certification
canvas_url <- artutils::path_art_canvas(artist, artwork)
if (!isCanvasSigned(canvas_url)) {
  stop("Canvas must be signed before certification")
}
} # }