{"version":3,"sources":["../../src/encode/tiff.ts"],"names":["UTIF"],"mappings":";;;;;;;;;AAIO,IAAM,IAAA,GAAmB;AAAA,EAC9B,GAAA,EAAK,MAAA;AAAA,EACL,OAAA,EAAS,CAAC,KAAK,CAAA;AAAA,EACf,KAAA,EAAO,MAAA;AAAA,EACP,IAAA,EAAM,YAAA;AAAA,EACN,GAAA,EAAK,MAAA;AAAA,EACL,mBAAA,EAAqB,KAAA;AAAA,EACrB,eAAA,EAAiB,MAAA;AAAA,EACjB,cAAA,EAAgB,IAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,WAAA,EAAa,+CAAA;AAAA,EACb,wBAAA,EAA0B,IAAA;AAAA,EAC1B,oBAAA,EAAsB;AACxB;AAMA,eAAsB,MAAA,CACpB,QACA,QAAA,EACe;AACf,EAAA,MAAM,IAAI,MAAA,CAAO,KAAA;AACjB,EAAA,MAAM,IAAI,MAAA,CAAO,MAAA;AAEjB,EAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAIlC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAEtE,EAAA,MAAM,YAAY,GAAA,CAAI,YAAA,CAAa,CAAA,EAAG,CAAA,EAAG,GAAG,CAAC,CAAA;AAE7C,EAAA,MAAM,UAAA,GAAa,SAAA,CAAU,IAAA,CAAK,MAAA,CAAO,KAAA;AAAA,IACvC,UAAU,IAAA,CAAK,UAAA;AAAA,IACf,SAAA,CAAU,IAAA,CAAK,UAAA,GAAa,SAAA,CAAU,IAAA,CAAK;AAAA,GAC7C;AAEA,EAAA,MAAM,UAAA,GAAaA,qBAAA,CAAK,WAAA,CAAY,UAAA,EAAqC,GAAG,CAAC,CAAA;AAE7E,EAAA,OAAO,IAAI,KAAK,CAAC,UAAU,GAAG,EAAE,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,CAAA;AACnD","file":"tiff.cjs","sourcesContent":["import type { FormatMeta, EncodeOptions } from '../types.js';\n\nimport UTIF from 'utif2';\n\nexport const meta: FormatMeta = {\n  key: 'tiff',\n  aliases: ['tif'],\n  label: 'TIFF',\n  mime: 'image/tiff',\n  ext: 'tiff',\n  supportsCompression: false,\n  compressionType: 'none',\n  defaultQuality: null,\n  qualityRange: null,\n  qualityHint: 'Uncompressed format — no quality control',\n  requiresAlphaCompositing: true,\n  supportsTransparency: false,\n};\n\n/**\n * Encode a Canvas to TIFF using utif2.\n * Produces an uncompressed RGBA TIFF.\n */\nexport async function encode(\n  canvas: HTMLCanvasElement | OffscreenCanvas,\n  _options?: EncodeOptions,\n): Promise<Blob> {\n  const w = canvas.width;\n  const h = canvas.height;\n\n  const ctx = canvas.getContext('2d') as\n    | CanvasRenderingContext2D\n    | OffscreenCanvasRenderingContext2D;\n\n  if (!ctx) throw new Error('Failed to get 2D context for TIFF encoding');\n\n  const imageData = ctx.getImageData(0, 0, w, h);\n  // utif2.encodeImage expects ArrayBuffer of RGBA data\n  const rgbaBuffer = imageData.data.buffer.slice(\n    imageData.data.byteOffset,\n    imageData.data.byteOffset + imageData.data.byteLength,\n  );\n\n  const tiffBuffer = UTIF.encodeImage(rgbaBuffer as unknown as Uint8Array, w, h);\n\n  return new Blob([tiffBuffer], { type: meta.mime });\n}\n"]}