UNPKG

@imagemagick/magick-wasm

Version:
42 lines 205 kB
(function(S,ze){typeof exports=="object"&&typeof module<"u"?ze(exports):typeof define=="function"&&define.amd?define(["exports"],ze):(S=typeof globalThis<"u"?globalThis:S||self,ze(S["magick-wasm"]={}))})(this,function(S){"use strict";var ze=typeof document<"u"?document.currentScript:null;function $t(M){return M instanceof Int8Array||M instanceof Uint8Array||M instanceof Uint8ClampedArray}class Ht{fileName;data;constructor(e,n){this.fileName=e,this.data=n}}const Mi={XmlResourceFiles:{log:`<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE logmap [ <!ELEMENT logmap (log)+> <!ELEMENT log (#PCDATA)> <!ATTLIST log events CDATA #IMPLIED> <!ATTLIST log output CDATA #IMPLIED> <!ATTLIST log filename CDATA #IMPLIED> <!ATTLIST log generations CDATA #IMPLIED> <!ATTLIST log limit CDATA #IMPLIED> <!ATTLIST log format CDATA #IMPLIED> ]> <logmap> <log events="None"/> <log output="Debug"/> <log filename="Magick-%g.log"/> <log generations="3"/> <log limit="2000"/> <log format="%t %r %u %v %d %c[%p]: %m/%f/%l/%d %e"/> </logmap> `,policy:`<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE policymap [ <!ELEMENT policymap (policy)*> <!ATTLIST policymap xmlns CDATA #FIXED ""> <!ELEMENT policy EMPTY> <!ATTLIST policy xmlns CDATA #FIXED ""> <!ATTLIST policy domain NMTOKEN #REQUIRED> <!ATTLIST policy name NMTOKEN #IMPLIED> <!ATTLIST policy pattern CDATA #IMPLIED> <!ATTLIST policy rights NMTOKEN #IMPLIED> <!ATTLIST policy stealth NMTOKEN #IMPLIED> <!ATTLIST policy value CDATA #IMPLIED> ]> <policymap> <policy domain="cache" name="shared-secret" value="passphrase"/> <policy domain="coder" rights="none" pattern="EPHEMERAL" /> <policy domain="coder" rights="none" pattern="MVG" /> <policy domain="coder" rights="none" pattern="MSL" /> <policy domain="path" rights="none" pattern="@*" /> <policy domain="path" rights="none" pattern="|*" /> </policymap> `}};class ft{constructor(){this.log=new Ht("log.xml",Mi.XmlResourceFiles.log),this.policy=new Ht("policy.xml",Mi.XmlResourceFiles.policy)}static default=new ft;*all(){yield this.log,yield this.policy}log;policy}class mt{constructor(e,n,i){this.format=e,this.name=n,this.value=i}format;name;value}class wi{format;constructor(e){this.format=e}createDefine(e,n){return typeof n=="boolean"?new mt(this.format,e,n?"true":"false"):typeof n=="string"?new mt(this.format,e,n):new mt(this.format,e,n.toString())}hasValue(e){return e!=null}}class Xr{_x;_y;_paintMethod;constructor(e,n,i){this._x=e,this._y=n,this._paintMethod=i}draw(e){e.color(this._x,this._y,this._paintMethod)}}class yi{_color;constructor(e){this._color=e}draw(e){e.fillColor(this._color)}}class Si{_opacity;constructor(e){this._opacity=e}draw(e){e.fillOpacity(this._opacity.toDouble()/100)}}class Ci{_pointSize;constructor(e){this._pointSize=e}draw(e){e.fontPointSize(this._pointSize)}}class Ii{constructor(e,n){this.eventType=e,this.message=n??""}eventType;message}const Pi={Undefined:0,Activate:1,Associate:2,Background:3,Copy:4,Deactivate:5,Discrete:6,Disassociate:7,Extract:8,Off:9,On:10,Opaque:11,Remove:12,Set:13,Shape:14,Transparent:15,OffIfOpaque:16},L={Red:0,Cyan:0,Gray:0,Green:1,Magenta:1,Blue:2,Yellow:2,Black:3,Alpha:4,Index:5,Meta0:10,Meta1:11,Meta2:12,Meta3:13,Meta4:14,Meta5:15,Meta6:16,Meta7:17,Meta8:18,Meta9:19,Meta10:20,Meta11:21,Meta12:22,Meta13:23,Meta14:24,Meta15:25,Meta16:26,Meta17:27,Meta18:28,Meta19:29,Meta20:30,Meta21:31,Meta22:32,Meta23:33,Meta24:34,Meta25:35,Meta26:36,Meta27:37,Meta28:38,Meta29:39,Meta30:40,Meta31:41,Meta32:42,Meta33:43,Meta34:44,Meta35:45,Meta36:46,Meta37:47,Meta38:48,Meta39:49,Meta40:50,Meta41:51,Meta42:52,Meta43:53,Meta44:54,Meta45:55,Meta46:56,Meta47:57,Meta48:58,Meta49:59,Meta50:60,Meta51:61,Meta52:62,Composite:64},X={Undefined:0,Red:1,Gray:1,Cyan:1,Green:2,Magenta:2,Blue:4,Yellow:4,Black:8,Alpha:16,Opacity:16,Index:32,Composite:31,TrueAlpha:256,get RGB(){return this.Red|this.Green|this.Blue},get CMYK(){return this.Cyan|this.Magenta|this.Yellow|this.Black},get CMYKA(){return this.Cyan|this.Magenta|this.Yellow|this.Black|this.Alpha},Meta0:1<<L.Meta0,Meta1:1<<L.Meta1,Meta2:1<<L.Meta2,Meta3:1<<L.Meta3,Meta4:1<<L.Meta4,Meta5:1<<L.Meta5,Meta6:1<<L.Meta6,Meta7:1<<L.Meta7,Meta8:1<<L.Meta8,Meta9:1<<L.Meta9,Meta10:1<<L.Meta10,Meta11:1<<L.Meta11,Meta12:1<<L.Meta12,Meta13:1<<L.Meta13,Meta14:1<<L.Meta14,Meta15:1<<L.Meta15,Meta16:1<<L.Meta16,Meta17:1<<L.Meta17,Meta18:1<<L.Meta18,Meta19:1<<L.Meta19,Meta20:1<<L.Meta20,Meta21:1<<L.Meta21,All:134217727};class Ei{constructor(e,n,i,l){this.red=e,this.green=n,this.blue=i,this.white=l}red;green;blue;white}const b={Undefined:0,CMY:1,CMYK:2,Gray:3,HCL:4,HCLp:5,HSB:6,HSI:7,HSL:8,HSV:9,HWB:10,Lab:11,LCH:12,LCHab:13,LCHuv:14,Log:15,LMS:16,Luv:17,OHTA:18,Rec601YCbCr:19,Rec709YCbCr:20,RGB:21,scRGB:22,sRGB:23,Transparent:24,XyY:25,XYZ:26,YCbCr:27,YCC:28,YDbDr:29,YIQ:30,YPbPr:31,YUV:32,LinearGray:33,Jzazbz:34,DisplayP3:35,Adobe98:36,ProPhoto:37,Oklab:38,Oklch:39,CAT02LMSC:40},Ut={[b.Undefined]:"Undefined",[b.CMY]:"CMY",[b.CMYK]:"CMYK",[b.Gray]:"Gray",[b.HCL]:"HCL",[b.HCLp]:"HCLp",[b.HSB]:"HSB",[b.HSI]:"HSI",[b.HSL]:"HSL",[b.HSV]:"HSV",[b.HWB]:"HWB",[b.Lab]:"Lab",[b.LCH]:"LCH",[b.LCHab]:"LCHab",[b.LCHuv]:"LCHuv",[b.Log]:"Log",[b.LMS]:"LMS",[b.Luv]:"Luv",[b.OHTA]:"OHTA",[b.Rec601YCbCr]:"Rec601YCbCr",[b.Rec709YCbCr]:"Rec709YCbCr",[b.RGB]:"RGB",[b.scRGB]:"scRGB",[b.sRGB]:"sRGB",[b.Transparent]:"Transparent",[b.XyY]:"XyY",[b.XYZ]:"XYZ",[b.YCbCr]:"YCbCr",[b.YCC]:"YCC",[b.YDbDr]:"YDbDr",[b.YIQ]:"YIQ",[b.YPbPr]:"YPbPr",[b.YUV]:"YUV",[b.LinearGray]:"LinearGray",[b.Jzazbz]:"Jzazbz",[b.DisplayP3]:"DisplayP3",[b.Adobe98]:"Adobe98",[b.ProPhoto]:"ProPhoto",[b.Oklab]:"Oklab",[b.Oklch]:"Oklch",[b.CAT02LMSC]:"CAT02LMS"};class qr{colorSpace=b.Undefined;copyright=null;description=null;manufacturer=null;model=null}class Kr{_data;_index;constructor(e){this._data=e,this._index=0,this.isLittleEndian=!1}get index(){return this._index}isLittleEndian;readLong(){return this.canRead(4)?this.isLittleEndian?this.readLongLSB():this.readLongMSB():null}readString(e){if(e==0)return"";if(!this.canRead(e))return null;let i=new TextDecoder("utf-8").decode(this._data.subarray(this._index,this._index+e));const l=i.indexOf("\0");return l!=-1&&(i=i.substring(0,l)),this._index+=e,i}seek(e){return e>=this._data.length?!1:(this._index=e,!0)}skip(e){return this._index+e>=this._data.length?!1:(this._index+=e,!0)}canRead(e){return e>this._data.length?!1:this._index+e<=this._data.length}readLongLSB(){let e=this._data[this._index];return e|=this._data[this._index+1]<<8,e|=this._data[this._index+2]<<16,e|=this._data[this._index+3]<<24,this._index+=4,e}readLongMSB(){let e=this._data[this._index]<<24;return e|=this._data[this._index+1]<<16,e|=this._data[this._index+2]<<8,e|=this._data[this._index+3],this._index+=4,e}}class jt{_data=new qr;_reader;constructor(e){this._reader=new Kr(e)}static read(e){const n=new jt(e);return n.readColorSpace(),n.readTagTable(),n._data}readColorSpace(){this._reader.seek(16);const e=this._reader.readString(4);e!=null&&(this._data.colorSpace=this.determineColorSpace(e.trimEnd()))}determineColorSpace(e){switch(e){case"CMY":return b.CMY;case"CMYK":return b.CMYK;case"GRAY":return b.Gray;case"HSL":return b.HSL;case"HSV":return b.HSV;case"Lab":return b.Lab;case"Luv":return b.Luv;case"RGB":return b.sRGB;case"XYZ":return b.XYZ;case"YCbr":return b.YCbCr;default:return b.Undefined}}readTagTable(){if(!this._reader.seek(128))return;const e=this._reader.readLong();if(e!=null)for(let n=0;n<e;n++)switch(this._reader.readLong()){case 1668313716:this._data.copyright=this.readTag();break;case 1684370275:this._data.description=this.readTag();break;case 1684893284:this._data.manufacturer=this.readTag();break;case 1684890724:this._data.model=this.readTag();break;default:this._reader.skip(8);break}}readTag(){const e=this._reader.readLong(),n=this._reader.readLong();if(e===null||n===null)return null;const i=this._reader.index;if(!this._reader.seek(e))return null;const l=this.readTagValue(n);return this._reader.seek(i),l}readTagValue(e){switch(this._reader.readString(4)){case"desc":return this.readTextDescriptionTypeValue();case"text":return this.readTextTypeValue(e);default:return null}}readTextDescriptionTypeValue(){if(!this._reader.skip(4))return null;const e=this._reader.readLong();return e==null?null:this._reader.readString(e)}readTextTypeValue(e){return this._reader.skip(4)?this._reader.readString(e):null}}class Yt{constructor(e,n){this.name=e,this.data=n}name;data}class Di extends Yt{_data;constructor(e){super("icc",e)}get colorSpace(){return this.initialize(),this._data.colorSpace}get copyright(){return this.initialize(),this._data.copyright}get description(){return this.initialize(),this._data.description}get manufacturer(){return this.initialize(),this._data.manufacturer}get model(){return this.initialize(),this._data.model}initialize(){this._data||(this._data=jt.read(this.data))}}const Vt={HighRes:0,Quantum:1};class pt{constructor(e,n){this.distortion=e,this.difference=n}difference;distortion;static _create(e,n){return new pt(e,n)}}class bi{constructor(e){this.metric=e}metric;highlightColor;lowlightColor;masklightColor;_setArtifacts(e){this.highlightColor!==void 0&&e.setArtifact("compare:highlight-color",this.highlightColor),this.lowlightColor!==void 0&&e.setArtifact("compare:lowlight-color",this.lowlightColor),this.masklightColor!==void 0&&e.setArtifact("compare:masklight-color",this.masklightColor)}}const vt={Undefined:0,Alpha:1,Atop:2,Blend:3,Blur:4,Bumpmap:5,ChangeMask:6,Clear:7,ColorBurn:8,ColorDodge:9,Colorize:10,CopyBlack:11,CopyBlue:12,Copy:13,CopyCyan:14,CopyGreen:15,CopyMagenta:16,CopyAlpha:17,CopyRed:18,CopyYellow:19,Darken:20,DarkenIntensity:21,Difference:22,Displace:23,Dissolve:24,Distort:25,DivideDst:26,DivideSrc:27,DstAtop:28,Dst:29,DstIn:30,DstOut:31,DstOver:32,Exclusion:33,HardLight:34,HardMix:35,Hue:36,In:37,Intensity:38,Lighten:39,LightenIntensity:40,LinearBurn:41,LinearDodge:42,LinearLight:43,Luminize:44,Mathematics:45,MinusDst:46,MinusSrc:47,Modulate:48,ModulusAdd:49,ModulusSubtract:50,Multiply:51,No:52,Out:53,Over:54,Overlay:55,PegtopLight:56,PinLight:57,Plus:58,Replace:59,Saturate:60,Screen:61,SoftLight:62,SrcAtop:63,Src:64,SrcIn:65,SrcOut:66,SrcOver:67,Threshold:68,VividLight:69,Xor:70,Stereo:71,Freeze:72,Interpolate:73,Negate:74,Reflect:75,SoftBurn:76,SoftDodge:77,Stamp:78,RMSE:79,SaliencyBlend:80,SeamlessBlend:81},kt={Warning:300,ResourceLimitWarning:300,TypeWarning:305,OptionWarning:310,DelegateWarning:315,MissingDelegateWarning:320,CorruptImageWarning:325,FileOpenWarning:330,BlobWarning:335,StreamWarning:340,CacheWarning:345,CoderWarning:350,FilterWarning:352,ModuleWarning:355,DrawWarning:360,ImageWarning:365,WandWarning:370,RandomWarning:375,XServerWarning:380,MonitorWarning:385,RegistryWarning:390,ConfigureWarning:395,PolicyWarning:399,Error:400,ResourceLimitError:400,TypeError:405,OptionError:410,DelegateError:415,MissingDelegateError:420,CorruptImageError:425,FileOpenError:430,BlobError:435,StreamError:440,CacheError:445,CoderError:450,FilterError:452,ModuleError:455,DrawError:460,ImageError:465,WandError:470,RandomError:475,XServerError:480,MonitorError:485,RegistryError:490,ConfigureError:495,PolicyError:499};class N extends Error{_relatedErrors=[];constructor(e,n=kt.Error){super(e),this.severity=n}severity;get relatedErrors(){return this._relatedErrors}_setRelatedErrors(e){this._relatedErrors=e}}class Fe{static get depth(){return _._api._Quantum_Depth_Get()}static get max(){return _._api._Quantum_Max_Get()}}function le(M,e){return M===0?e??null:_._api.UTF8ToString(M)}function Qr(M,e){const n=le(e);return M._MagickMemory_Relinquish(e),n}function Xt(M,e,n){const i=M.lengthBytesUTF8(e)+1,l=M._malloc(i);try{return M.stringToUTF8(e,l,i),n(l)}finally{M._free(l)}}function R(M,e){return M===null?e(0):Xt(_._api,M,e)}class k{constructor(e,n,i,l,d){if(e!==void 0)if(typeof e=="string"){let m=0;try{m=_._api._MagickColor_Create(),R(e,v=>{if(_._api._MagickColor_Initialize(m,v)===0)throw new N("invalid color specified");this.initialize(m)})}finally{_._api._free(m)}}else this.r=e,this.g=n??0,this.b=i??0,d===void 0?this.a=l??Fe.max:(this.k=l??0,this.a=d,this.isCmyk=!0)}r=0;g=0;b=0;a=0;k=0;isCmyk=!1;static _create(e){const n=new k;return n.initialize(e),n}toShortString(){return this.a!==Fe.max?this.toString():this.isCmyk?`cmyka(${this.r},${this.g},${this.b},${this.k})`:`#${this.toHex(this.r)}${this.toHex(this.g)}${this.toHex(this.b)}`}toString(){return this.isCmyk?`cmyka(${this.r},${this.g},${this.b},${this.k},${(this.a/Fe.max).toFixed(4)})`:`#${this.toHex(this.r)}${this.toHex(this.g)}${this.toHex(this.b)}${this.toHex(this.a)}`}_use(e){let n=0;try{n=_._api._MagickColor_Create(),_._api._MagickColor_Red_Set(n,this.r),_._api._MagickColor_Green_Set(n,this.g),_._api._MagickColor_Blue_Set(n,this.b),_._api._MagickColor_Alpha_Set(n,this.a),_._api._MagickColor_IsCMYK_Set(n,this.isCmyk?1:0),e(n)}finally{_._api._free(n)}}initialize(e){this.r=_._api._MagickColor_Red_Get(e),this.g=_._api._MagickColor_Green_Get(e),this.b=_._api._MagickColor_Blue_Get(e),this.a=_._api._MagickColor_Alpha_Get(e),this.isCmyk=_._api._MagickColor_IsCMYK_Get(e)===1}toHex(e){return e.toString(16).padStart(2,"0")}}var Ce=(M=>(M[M.NoValue=0]="NoValue",M[M.PercentValue=4096]="PercentValue",M[M.IgnoreAspectRatio=8192]="IgnoreAspectRatio",M[M.Less=16384]="Less",M[M.Greater=32768]="Greater",M[M.FillArea=65536]="FillArea",M[M.LimitPixels=131072]="LimitPixels",M[M.AspectRatio=1048576]="AspectRatio",M))(Ce||{});class ne{_includeXyInToString;_width=0;_height=0;_x=0;_y=0;_aspectRatio=!1;_fillArea=!1;_greater=!1;_isPercentage=!1;_ignoreAspectRatio=!1;_less=!1;_limitPixels=!1;constructor(e,n,i,l){if(typeof e=="number"){if(i!==void 0&&l!==void 0?(this._width=i,this._height=l,this._x=e,this._y=n??0,this._includeXyInToString=!0):(this._width=e,this._height=n??this._width,this._x=0,this._y=0,this._includeXyInToString=!1),this._width<0)throw new N("negative width is not allowed");if(this._height<0)throw new N("negative height is not allowed")}else{this._includeXyInToString=e.indexOf("+")>=0||e.indexOf("-")>=0;const d=_._api._MagickGeometry_Create();try{R(e,m=>{const v=_._api._MagickGeometry_Initialize(d,m);if(v===Ce.NoValue)throw new N("invalid geometry specified");this.hasFlag(v,Ce.AspectRatio)?this.initializeFromAspectRation(d,e):this.initialize(d,v)})}finally{_._api._MagickGeometry_Dispose(d)}}}get aspectRatio(){return this._aspectRatio}get fillArea(){return this._fillArea}set fillArea(e){this._fillArea=e}get greater(){return this._greater}set greater(e){this._greater=e}get height(){return this._height}set height(e){this._height=e}get ignoreAspectRatio(){return this._ignoreAspectRatio}set ignoreAspectRatio(e){this._ignoreAspectRatio=e}get isPercentage(){return this._isPercentage}set isPercentage(e){this._isPercentage=e}get less(){return this._less}set less(e){this._less=e}get limitPixels(){return this._limitPixels}set limitPixels(e){this._limitPixels=e}get width(){return this._width}set width(e){this._width=e}get x(){return this._x}set x(e){this._x=e}get y(){return this._y}set y(e){this._y=e}toString(){if(this._aspectRatio)return this._width+":"+this._height;let e="";return this._width==0&&this._height==0?e+="0x0":(this._width>0&&(e+=this._width.toString()),this._height>0?e+="x"+this._height.toString():e+="x"),(this._x!=0||this._y!=0||this._includeXyInToString)&&(this._x>=0&&(e+="+"),e+=this._x,this.y>=0&&(e+="+"),e+=this.y),this._fillArea&&(e+="^"),this._greater&&(e+=">"),this._isPercentage&&(e+="%"),this._ignoreAspectRatio&&(e+="!"),this._less&&(e+="<"),this._limitPixels&&(e+="@"),e}static _fromRectangle(e){if(e===0)throw new N("unable to allocate memory");try{const n=_._api._MagickRectangle_Width_Get(e),i=_._api._MagickRectangle_Height_Get(e),l=_._api._MagickRectangle_X_Get(e),d=_._api._MagickRectangle_Y_Get(e);return new ne(l,d,n,i)}finally{_._api._MagickRectangle_Dispose(e)}}_toRectangle(e){const n=_._api._MagickRectangle_Create();if(n===0)throw new N("unable to allocate memory");try{return _._api._MagickRectangle_Width_Set(n,this._width),_._api._MagickRectangle_Height_Set(n,this._height),_._api._MagickRectangle_X_Set(n,this._x),_._api._MagickRectangle_Y_Set(n,this._y),e(n)}finally{_._api._MagickRectangle_Dispose(n)}}initialize(e,n){this._width=_._api._MagickGeometry_Width_Get(e),this._height=_._api._MagickGeometry_Height_Get(e),this._x=_._api._MagickGeometry_X_Get(e),this._y=_._api._MagickGeometry_Y_Get(e),this._ignoreAspectRatio=this.hasFlag(n,Ce.IgnoreAspectRatio),this._isPercentage=this.hasFlag(n,Ce.PercentValue),this._fillArea=this.hasFlag(n,Ce.FillArea),this._greater=this.hasFlag(n,Ce.Greater),this._less=this.hasFlag(n,Ce.Less),this._limitPixels=this.hasFlag(n,Ce.LimitPixels)}initializeFromAspectRation(e,n){this._aspectRatio=!0;const i=n.split(":");this._width=this.parseNumber(i[0]),this._height=this.parseNumber(i[1]),this._x=_._api._MagickGeometry_X_Get(e),this._y=_._api._MagickGeometry_Y_Get(e)}parseNumber(e){let n=0;for(;n<e.length&&!this.isNumber(e[n]);)n++;const i=n;for(;n<e.length&&this.isNumber(e[n]);)n++;return parseInt(e.substr(i,n-i))}isNumber(e){return e>="0"&&e<="9"}hasFlag(e,n){return(e&n)===n}}class ve{constructor(e,n){this.x=e,this.y=n??e}x;y;static _create(e){return e===0?new ve(0,0):new ve(_._api._PointInfo_X_Get(e),_._api._PointInfo_Y_Get(e))}}class Mt{constructor(e){this.area=_._api._ConnectedComponent_GetArea(e),this.centroid=ve._create(_._api._ConnectedComponent_GetCentroid(e)),this.color=k._create(_._api._ConnectedComponent_GetColor(e)),this.height=_._api._ConnectedComponent_GetHeight(e),this.id=_._api._ConnectedComponent_GetId(e),this.width=_._api._ConnectedComponent_GetWidth(e),this.x=_._api._ConnectedComponent_GetX(e),this.y=_._api._ConnectedComponent_GetY(e)}area;centroid;color;height;id;width;x;y;static _create(e,n){const i=[];if(e===0)return i;for(let l=0;l<n;l++){const d=_._api._ConnectedComponent_GetInstance(e,l);d===0||_._api._ConnectedComponent_GetArea(d)<Number.EPSILON||i.push(new Mt(d))}return i}toGeometry(){return new ne(this.x,this.y,this.width,this.height)}}class Ti{angleThreshold;areaThreshold;circularityThreshold;connectivity;diameterThreshold;eccentricityThreshold;majorAxisThreshold;meanColor;minorAxisThreshold;perimeterThreshold;constructor(e){this.connectivity=e}_setArtifacts(e){this.angleThreshold!==void 0&&e.setArtifact("connected-components:angle-threshold",this.angleThreshold.toString()),this.areaThreshold!==void 0&&e.setArtifact("connected-components:area-threshold",this.areaThreshold.toString()),this.circularityThreshold!==void 0&&e.setArtifact("connected-components:circularity-threshold",this.circularityThreshold.toString()),this.diameterThreshold!==void 0&&e.setArtifact("connected-components:diameter-threshold",this.diameterThreshold.toString()),this.eccentricityThreshold!==void 0&&e.setArtifact("connected-components:eccentricity-threshold",this.eccentricityThreshold.toString()),this.majorAxisThreshold!==void 0&&e.setArtifact("connected-components:major-axis-threshold",this.majorAxisThreshold.toString()),this.meanColor!==void 0&&e.setArtifact("connected-components:mean-color",this.meanColor.toString()),this.minorAxisThreshold!==void 0&&e.setArtifact("connected-components:minor-axis-threshold",this.minorAxisThreshold.toString()),this.perimeterThreshold!==void 0&&e.setArtifact("connected-components:perimeter-threshold",this.perimeterThreshold.toString())}}const xe={Undefined:0,PixelsPerInch:1,PixelsPerCentimeter:2};class $e{constructor(e,n,i){n===void 0?(this.x=e,this.y=e,this.units=xe.PixelsPerInch):i!==void 0?(this.x=e,this.y=n,this.units=i):(this.x=e,this.y=e,this.units=n)}x;y;units;toString(e){return e==this.units||e===xe.Undefined||e===void 0?$e.toString(this.x,this.y,e??xe.Undefined):this.units==xe.PixelsPerCentimeter&&e==xe.PixelsPerInch?$e.toString(this.x*2.54,this.y*2.54,e):$e.toString(this.x/2.54,this.y/2.54,e)}static toString(e,n,i){let l=`${e}x${n}`;switch(i){case xe.PixelsPerCentimeter:l+="cm";break;case xe.PixelsPerInch:l+="inch";break}return l}}class _e{static _disposeAfterExecution(e,n){try{const i=n(e);return i instanceof Promise?Promise.resolve(i).then(l=>(e.dispose(),_e.checkResult(e,l),l)):(e.dispose(),_e.checkResult(e,i),i)}catch(i){throw e.dispose(),i}}static checkResult(e,n){if(n===e)throw new N("The result of the function cannot be the instance that has been disposed.");return n}}class Ai{_pointer;_bytes;_func;constructor(e,n,i){this._pointer=e,this._func=i,this._bytes=_._api.HEAPU8.subarray(e,e+n)}func(e){return e._bytes===void 0?e._func(new Uint8Array):e._func(e._bytes)}dispose(){this._pointer=_._api._MagickMemory_Relinquish(this._pointer)}}class Le{disposeMethod;instance;constructor(e,n){this.instance=e,this.disposeMethod=n}get _instance(){if(this.instance>0)return this.instance;throw this.instance===-1&&this._instanceNotInitialized(),new N("instance is disposed")}set _instance(e){this.disposeInstance(this.instance),this.instance=e}dispose(){this.instance=this.disposeInstance(this.instance)}_instanceNotInitialized(){throw new N("instance is not initialized")}_setInstance(e,n){return n.check(()=>this.instance===0?!1:(this.dispose(),this.instance=e,!0),()=>(this.disposeInstance(e),!0))}disposeInstance(e){return e>0&&(this.onDispose!==void 0&&this.onDispose(),this.disposeMethod(e)),0}}class Jr extends Le{constructor(e){const n=_._api._DrawingSettings_Create(),i=_._api._DrawingSettings_Dispose;if(super(n,i),e.fillColor!==void 0&&e.fillColor._use(l=>{_._api._DrawingSettings_FillColor_Set(this._instance,l)}),e.font!==void 0){const l=we._getFontFileName(e.font);R(l,d=>{_._api._DrawingSettings_Font_Set(this._instance,d)})}e.fontPointsize!==void 0&&_._api._DrawingSettings_FontPointsize_Set(this._instance,e.fontPointsize),e.strokeColor!==void 0&&e.strokeColor._use(l=>{_._api._DrawingSettings_StrokeColor_Set(this._instance,l)}),e.strokeWidth!==void 0&&_._api._DrawingSettings_StrokeWidth_Set(this._instance,e.strokeWidth)}}class wt{backgroundColor;fillColor;font;fontPointsize;strokeColor;strokeWidth;static _create(e){const n=new wt;return n.fillColor=e.fillColor,n.font=e.font,n.fontPointsize=e.fontPointsize,n.strokeColor=e.strokeColor,n.strokeWidth=e.strokeWidth,n}_use(e){const n=new Jr(this);return _e._disposeAfterExecution(n,e)}}class Ri{instance;type;constructor(e,n){this.instance=_._api._malloc(e),this.type=n,_._api.setValue(this.instance,0,this.type)}get ptr(){return this.instance}get value(){return _._api.getValue(this.instance,this.type)}}class Ie extends Ri{constructor(){super(4,"i32")}static use(e){const n=new Ie;try{return e(n)}finally{_._api._free(n.ptr)}}}class A{pointer;constructor(e){this.pointer=e}get ptr(){return this.pointer.ptr}check(e,n){return this.isError()?n():e()}static usePointer(e,n){return Ie.use(i=>{const l=e(i.ptr);return A.checkException(i,l,n)})}static use(e,n){return Ie.use(i=>{const l=e(new A(i));return A.checkException(i,l,n)})}static checkException(e,n,i){if(!A.isRaised(e))return n;const l=A.getErrorSeverity(e.value);if(l>=kt.Error)A.throw(e,l);else if(i!==void 0){const d=A.createError(e.value,l);i(d)}else A.dispose(e);return n}isError(){return A.isRaised(this.pointer)?A.getErrorSeverity(this.pointer.value)>=kt.Error:!1}static getErrorSeverity(e){return _._api._MagickExceptionHelper_Severity(e)}static isRaised(e){return e.value!==0}static throw(e,n){const i=A.createError(e.value,n);throw A.dispose(e),i}static createError(e,n){const i=A.getMessage(e),l=new N(i,n),d=_._api._MagickExceptionHelper_RelatedCount(e);if(d===0)return l;const m=[];for(let v=0;v<d;v++){const C=_._api._MagickExceptionHelper_Related(e,v),F=A.getErrorSeverity(C),z=A.createError(C,F);m.push(z)}return l._setRelatedErrors(m),l}static getMessage(e){const n=_._api._MagickExceptionHelper_Message(e),i=_._api._MagickExceptionHelper_Description(e);let l=le(n,"Unknown error");return i!==0&&(l+=`(${_._api.UTF8ToString(i)})`),l}static dispose(e){_._api._MagickExceptionHelper_Dispose(e.value)}}class yt{constructor(e,n,i,l,d,m,v){this.ascent=e,this.descent=n,this.maxHorizontalAdvance=i,this.textHeight=l,this.textWidth=d,this.underlinePosition=m,this.underlineThickness=v}ascent;descent;maxHorizontalAdvance;textHeight;textWidth;underlinePosition;underlineThickness;static _create(e){if(e==0)return null;try{const n=_._api._TypeMetric_Ascent_Get(e),i=_._api._TypeMetric_Descent_Get(e),l=_._api._TypeMetric_MaxHorizontalAdvance_Get(e),d=_._api._TypeMetric_TextHeight_Get(e),m=_._api._TypeMetric_TextWidth_Get(e),v=_._api._TypeMetric_UnderlinePosition_Get(e),C=_._api._TypeMetric_UnderlineThickness_Get(e);return new yt(n,i,l,d,m,v,C)}finally{_._api._TypeMetric_Dispose(e)}}}class st extends Le{constructor(e,n){const l=wt._create(n)._use(m=>_._api._DrawingWand_Create(e._instance,m._instance)),d=_._api._DrawingWand_Dispose;super(l,d)}color(e,n,i){A.usePointer(l=>{_._api._DrawingWand_Color(this._instance,e,n,i,l)})}draw(e){e.forEach(n=>{n.draw(this)}),A.usePointer(n=>{_._api._DrawingWand_Render(this._instance,n)})}fillColor(e){A.usePointer(n=>{e._use(i=>{_._api._DrawingWand_FillColor(this._instance,i,n)})})}fillOpacity(e){A.usePointer(n=>{_._api._DrawingWand_FillOpacity(this._instance,e,n)})}font(e){A.usePointer(n=>{R(e,i=>{_._api._DrawingWand_Font(this._instance,i,n)})})}fontPointSize(e){A.usePointer(n=>{_._api._DrawingWand_FontPointSize(this._instance,e,n)})}fontTypeMetrics(e,n){return A.usePointer(i=>R(e,l=>{const d=_._api._DrawingWand_FontTypeMetrics(this._instance,l,n?1:0,i);return yt._create(d)}))}gravity(e){A.usePointer(n=>{_._api._DrawingWand_Gravity(this._instance,e,n)})}line(e,n,i,l){A.usePointer(d=>{_._api._DrawingWand_Line(this._instance,e,n,i,l,d)})}point(e,n){A.usePointer(i=>{_._api._DrawingWand_Point(this._instance,e,n,i)})}rectangle(e,n,i,l){A.usePointer(d=>{_._api._DrawingWand_Rectangle(this._instance,e,n,i,l,d)})}roundRectangle(e,n,i,l,d,m){A.usePointer(v=>{_._api._DrawingWand_RoundRectangle(this._instance,e,n,i,l,d,m,v)})}strokeColor(e){A.usePointer(n=>{e._use(i=>{_._api._DrawingWand_StrokeColor(this._instance,i,n)})})}strokeWidth(e){A.usePointer(n=>{_._api._DrawingWand_StrokeWidth(this._instance,e,n)})}text(e,n,i){A.usePointer(l=>{R(i,d=>{_._api._DrawingWand_Text(this._instance,e,n,d,l)})})}textAlignment(e){A.usePointer(n=>{_._api._DrawingWand_TextAlignment(this._instance,e,n)})}textAntialias(e){A.usePointer(n=>{_._api._DrawingWand_TextAntialias(this._instance,e?1:0,n)})}textDecoration(e){A.usePointer(n=>{_._api._DrawingWand_TextDecoration(this._instance,e,n)})}textInterlineSpacing(e){A.usePointer(n=>{_._api._DrawingWand_TextInterlineSpacing(this._instance,e,n)})}textInterwordspacing(e){A.usePointer(n=>{_._api._DrawingWand_TextInterwordSpacing(this._instance,e,n)})}textKerning(e){A.usePointer(n=>{_._api._DrawingWand_TextKerning(this._instance,e,n)})}textUnderColor(e){A.usePointer(n=>{e._use(i=>{_._api._DrawingWand_TextUnderColor(this._instance,i,n)})})}static _use(e,n){const i=new st(e,e.settings);return _e._disposeAfterExecution(i,n)}}class qt extends Ri{constructor(){super(8,"double")}static use(e){const n=new qt;try{return e(n)}finally{_._api._free(n.ptr)}}}const ue={Undefined:0,Forget:0,Northwest:1,North:2,Northeast:3,West:4,Center:5,East:6,Southwest:7,South:8,Southeast:9};function*Gi(M){for(const e of M)switch(e){case ue.North:yield"north";break;case ue.Northeast:yield"north",yield"east";break;case ue.Northwest:yield"north",yield"west";break;case ue.East:yield"east";break;case ue.West:yield"west";break;case ue.South:yield"south";break;case ue.Southeast:yield"south",yield"east";break;case ue.Southwest:yield"south",yield"west"}}class ot{constructor(e,n,i){this.meanErrorPerPixel=e,this.normalizedMeanError=n,this.normalizedMaximumError=i}meanErrorPerPixel;normalizedMaximumError;normalizedMeanError;static _create(e){const n=_._api._MagickImage_MeanErrorPerPixel_Get(e._instance),i=_._api._MagickImage_NormalizedMeanError_Get(e._instance),l=_._api._MagickImage_NormalizedMaximumError_Get(e._instance);return new ot(n,i,l)}}const Pe={Unknown:"UNKNOWN",ThreeFr:"3FR",ThreeG2:"3G2",ThreeGp:"3GP",A:"A",Aai:"AAI",Ai:"AI",APng:"APNG",Art:"ART",Arw:"ARW",Ashlar:"ASHLAR",Avci:"AVCI",Avi:"AVI",Avif:"AVIF",Avs:"AVS",B:"B",Bayer:"BAYER",Bayera:"BAYERA",Bgr:"BGR",Bgra:"BGRA",Bgro:"BGRO",Bmp:"BMP",Bmp2:"BMP2",Bmp3:"BMP3",Brf:"BRF",C:"C",Cal:"CAL",Cals:"CALS",Canvas:"CANVAS",Caption:"CAPTION",Cin:"CIN",Cip:"CIP",Clip:"CLIP",Cmyk:"CMYK",Cmyka:"CMYKA",Cr2:"CR2",Cr3:"CR3",Crw:"CRW",Cube:"CUBE",Cur:"CUR",Cut:"CUT",Data:"DATA",Dcm:"DCM",Dcr:"DCR",Dcraw:"DCRAW",Dcx:"DCX",Dds:"DDS",Dfont:"DFONT",Dng:"DNG",Dpx:"DPX",Dxt1:"DXT1",Dxt5:"DXT5",Epdf:"EPDF",Epi:"EPI",Eps:"EPS",Eps2:"EPS2",Eps3:"EPS3",Epsf:"EPSF",Epsi:"EPSI",Ept:"EPT",Ept2:"EPT2",Ept3:"EPT3",Erf:"ERF",Exr:"EXR",Farbfeld:"FARBFELD",Fax:"FAX",Ff:"FF",Fff:"FFF",File:"FILE",Fits:"FITS",Fl32:"FL32",Flv:"FLV",Fractal:"FRACTAL",Ftp:"FTP",Fts:"FTS",Ftxt:"FTXT",G:"G",G3:"G3",G4:"G4",Gif:"GIF",Gif87:"GIF87",Gradient:"GRADIENT",Gray:"GRAY",Graya:"GRAYA",Group4:"GROUP4",Hald:"HALD",Hdr:"HDR",Heic:"HEIC",Heif:"HEIF",Histogram:"HISTOGRAM",Hrz:"HRZ",Htm:"HTM",Html:"HTML",Http:"HTTP",Https:"HTTPS",Icb:"ICB",Ico:"ICO",Icon:"ICON",Iiq:"IIQ",Info:"INFO",Inline:"INLINE",Ipl:"IPL",Isobrl:"ISOBRL",Isobrl6:"ISOBRL6",J2c:"J2C",J2k:"J2K",Jng:"JNG",Jnx:"JNX",Jp2:"JP2",Jpc:"JPC",Jpe:"JPE",Jpeg:"JPEG",Jpg:"JPG",Jpm:"JPM",Jps:"JPS",Jpt:"JPT",Json:"JSON",Jxl:"JXL",K:"K",K25:"K25",Kdc:"KDC",Label:"LABEL",M:"M",M2v:"M2V",M4v:"M4V",Mac:"MAC",Map:"MAP",Mask:"MASK",Mat:"MAT",Matte:"MATTE",Mdc:"MDC",Mef:"MEF",Miff:"MIFF",Mkv:"MKV",Mng:"MNG",Mono:"MONO",Mov:"MOV",Mos:"MOS",Mp4:"MP4",Mpc:"MPC",Mpeg:"MPEG",Mpg:"MPG",Mpo:"MPO",Mrw:"MRW",Msl:"MSL",Msvg:"MSVG",Mtv:"MTV",Mvg:"MVG",Nef:"NEF",Nrw:"NRW",Null:"NULL",O:"O",Ora:"ORA",Orf:"ORF",Otb:"OTB",Otf:"OTF",Pal:"PAL",Palm:"PALM",Pam:"PAM",Pango:"PANGO",Pattern:"PATTERN",Pbm:"PBM",Pcd:"PCD",Pcds:"PCDS",Pcl:"PCL",Pct:"PCT",Pcx:"PCX",Pdb:"PDB",Pdf:"PDF",Pdfa:"PDFA",Pef:"PEF",Pes:"PES",Pfa:"PFA",Pfb:"PFB",Pfm:"PFM",Pgm:"PGM",Pgx:"PGX",Phm:"PHM",Picon:"PICON",Pict:"PICT",Pix:"PIX",Pjpeg:"PJPEG",Plasma:"PLASMA",Png:"PNG",Png00:"PNG00",Png24:"PNG24",Png32:"PNG32",Png48:"PNG48",Png64:"PNG64",Png8:"PNG8",Pnm:"PNM",Pocketmod:"POCKETMOD",Ppm:"PPM",Ps:"PS",Ps2:"PS2",Ps3:"PS3",Psb:"PSB",Psd:"PSD",Ptif:"PTIF",Pwp:"PWP",Qoi:"QOI",R:"R",RadialGradient:"RADIAL-GRADIENT",Raf:"RAF",Ras:"RAS",Raw:"RAW",Rgb:"RGB",Rgb565:"RGB565",Rgba:"RGBA",Rgbo:"RGBO",Rgf:"RGF",Rla:"RLA",Rle:"RLE",Rmf:"RMF",Rw2:"RW2",Rwl:"RWL",Scr:"SCR",Screenshot:"SCREENSHOT",Sct:"SCT",Sfw:"SFW",Sgi:"SGI",Shtml:"SHTML",Six:"SIX",Sixel:"SIXEL",SparseColor:"SPARSE-COLOR",Sr2:"SR2",Srf:"SRF",Srw:"SRW",Stegano:"STEGANO",Sti:"STI",StrImg:"STRIMG",Sun:"SUN",Svg:"SVG",Svgz:"SVGZ",Text:"TEXT",Tga:"TGA",Thumbnail:"THUMBNAIL",Tif:"TIF",Tiff:"TIFF",Tiff64:"TIFF64",Tile:"TILE",Tim:"TIM",Tm2:"TM2",Ttc:"TTC",Ttf:"TTF",Txt:"TXT",Ubrl:"UBRL",Ubrl6:"UBRL6",Uil:"UIL",Uyvy:"UYVY",Vda:"VDA",Vicar:"VICAR",Vid:"VID",Viff:"VIFF",Vips:"VIPS",Vst:"VST",WebM:"WEBM",WebP:"WEBP",Wbmp:"WBMP",Wmv:"WMV",Wpg:"WPG",X3f:"X3F",Xbm:"XBM",Xc:"XC",Xcf:"XCF",Xpm:"XPM",Xps:"XPS",Xv:"XV",Y:"Y",Yaml:"YAML",Ycbcr:"YCBCR",Ycbcra:"YCBCRA",Yuv:"YUV"},St={Merge:13,Flatten:14,Mosaic:15,Trimbounds:16};class Fi extends Le{constructor(e){const n=_._api._MagickSettings_Create(),i=_._api._MagickSettings_Dispose;if(super(n,i),e._fileName!==void 0&&R(e._fileName,l=>{_._api._MagickSettings_SetFileName(this._instance,l)}),e._ping&&_._api._MagickSettings_SetPing(this._instance,1),e._quality!==void 0&&_._api._MagickSettings_SetQuality(this._instance,e._quality),e.antiAlias!==void 0&&_._api._MagickSettings_AntiAlias_Set(this._instance,e.antiAlias?1:0),e.backgroundColor!==void 0&&e.backgroundColor._use(l=>{_._api._MagickSettings_BackgroundColor_Set(this._instance,l)}),e.colorSpace!==void 0&&_._api._MagickSettings_ColorSpace_Set(this._instance,e.colorSpace),e.colorType!==void 0&&_._api._MagickSettings_ColorType_Set(this._instance,e.colorType),e.compression!==void 0&&_._api._MagickSettings_Compression_Set(this._instance,e.compression),e.debug!==void 0&&_._api._MagickSettings_Debug_Set(this._instance,e.debug?1:0),e.density!==void 0){const l=e.density.toString();R(l,d=>{_._api._MagickSettings_Density_Set(this._instance,d)})}if(e.depth!==void 0&&_._api._MagickSettings_Depth_Set(this._instance,e.depth),e.endian!==void 0&&_._api._MagickSettings_Endian_Set(this._instance,e.endian),e.fillColor!==void 0&&this.setOption("fill",e.fillColor.toString()),e.font!==void 0){const l=we._getFontFileName(e.font);R(l,d=>{_._api._MagickSettings_SetFont(this._instance,d)})}e.fontPointsize!==void 0&&_._api._MagickSettings_FontPointsize_Set(this._instance,e.fontPointsize),e.format!==void 0&&R(e.format,l=>{_._api._MagickSettings_Format_Set(this._instance,l)}),e.interlace!==void 0&&_._api._MagickSettings_Interlace_Set(this._instance,e.interlace),e.strokeColor!==void 0&&this.setOption("stroke",e.strokeColor.toString()),e.strokeWidth!==void 0&&this.setOption("strokeWidth",e.strokeWidth.toString()),e.textInterlineSpacing!==void 0&&this.setOption("interline-spacing",e.textInterlineSpacing.toString()),e.textKerning!==void 0&&this.setOption("kerning",e.textKerning.toString());for(const l in e._options)this.setOption(l,e._options[l])}setOption(e,n){R(e,i=>{R(n,l=>{_._api._MagickSettings_SetOption(this._instance,i,l)})})}}class Je{_options={};_fileName;_ping=!1;_quality;antiAlias;backgroundColor;colorSpace;colorType;compression;debug;density;depth;endian;fillColor;font;fontPointsize;format;interlace;strokeColor;strokeWidth;textInterlineSpacing;textKerning;getDefine(e,n){return n!==void 0?this._options[`${e}:${n}`]??null:this._options[e]??null}setDefine(e,n,i){if(i===void 0)this._options[e]=n;else{const l=this.parseDefine(e,n);typeof i=="string"?this._options[l]=i:typeof i=="number"?this._options[l]=i.toString():this._options[l]=i?"true":"false"}}setDefines(e){e.getDefines().forEach(n=>{n!==void 0&&this.setDefine(n.format,n.name,n.value)})}_clone(){const e=new Je;return Object.assign(e,this),e}_use(e){const n=new Fi(this);return _e._disposeAfterExecution(n,e)}parseDefine(e,n){return e===Pe.Unknown?n:`${e}:${n}`}}class ke extends Je{constructor(e){super(),Object.assign(this,e)}extractArea;frameIndex;frameCount;height;get syncImageWithExifProfile(){const e=this.getDefine("exif:sync-image");return e===null?!0:e.toLowerCase()==="true"}set syncImageWithExifProfile(e){this.setDefine("exif:sync-image",e.toString())}get syncImageWithTiffProperties(){const e=this.getDefine("tiff:sync-image");return e===null?!0:e.toLowerCase()==="true"}set syncImageWithTiffProperties(e){this.setDefine("tiff:sync-image",e.toString())}width;_use(e){const n=new Fi(this),i=this.getSize();if(i!==""&&R(i,l=>{_._api._MagickSettings_SetSize(n._instance,l)}),this.frameIndex!==void 0||this.frameCount!==void 0){const l=this.frameIndex??0,d=this.frameCount??1;_._api._MagickSettings_SetScene(n._instance,l),_._api._MagickSettings_SetNumberScenes(n._instance,d);const m=this.frameCount!==void 0?`${l}-${l+d}`:l.toString();R(m.toString(),v=>{_._api._MagickSettings_SetScenes(n._instance,v)})}return this.extractArea!==void 0&&R(this.extractArea.toString(),l=>{_._api._MagickSettings_Extract_Set(n._instance,l)}),_e._disposeAfterExecution(n,e)}getSize(){return this.width!==void 0&&this.height!==void 0?`${this.width}x${this.height}`:this.width!==void 0?`${this.width}x`:this.height!==void 0?`x${this.height}`:""}}const Kt={Undefined:0,No:1,Riemersma:2,FloydSteinberg:3};class Or extends Le{constructor(e){const n=_._api._QuantizeSettings_Create(),i=_._api._QuantizeSettings_Dispose;super(n,i),_._api._QuantizeSettings_SetColors(this._instance,e.colors),_._api._QuantizeSettings_SetColorSpace(this._instance,e.colorSpace),_._api._QuantizeSettings_SetDitherMethod(this._instance,e.ditherMethod??Kt.No),_._api._QuantizeSettings_SetMeasureErrors(this._instance,e.measureErrors?1:0),_._api._QuantizeSettings_SetTreeDepth(this._instance,e.treeDepth)}}class Ct{constructor(){this.colors=256,this.colorSpace=b.Undefined,this.ditherMethod=Kt.Riemersma,this.measureErrors=!1,this.treeDepth=0}colors;colorSpace;ditherMethod;measureErrors;treeDepth;_use(e){const n=new Or(this);return _e._disposeAfterExecution(n,e)}}class Ee{_image;_names=[];constructor(e){this._image=e}setArtifact(e,n){this._names.push(e),this._image.setArtifact(e,n)}static use(e,n){const i=new Ee(e);try{return n(i)}finally{i.dispose()}}dispose(){for(const e of this._names)this._image.removeArtifact(e)}}function xi(M,e){if(M.byteLength===0)throw new N("The specified array cannot be empty");let n=0;try{return n=_._api._malloc(M.byteLength),_._api.HEAPU8.set(M,n),e(n)}finally{n!==0&&_._api._free(n)}}function Li(M,e){if(M.length===0)throw new N("The specified array cannot be empty");const n=M.length*8;let i=0;try{i=_._api._malloc(n);const l=new ArrayBuffer(n),d=new Float64Array(l);for(let m=0;m<M.length;m++)d[m]=M[m];return _._api.HEAPU8.set(new Int8Array(l),i),e(i)}finally{i!==0&&_._api._free(i)}}function Zr(M,e){if(M.byteLength===0)throw new N("The specified array cannot be empty");let n=0;try{return n=_._api._malloc(M.byteLength),_._api.HEAPU8.set(M,n),e(n)}finally{n!==0&&_._api._free(n)}}class Me extends Array{constructor(){super()}static create(e){const n=Me.createObject();return e!==void 0&&n.read(e),n}dispose(){let e=this.pop();for(;e!==void 0;)e.dispose(),e=this.pop()}appendHorizontally(e){return this.createImage((n,i)=>_._api._MagickImageCollection_Append(n,0,i.ptr),e)}appendVertically(e){return this.createImage((n,i)=>_._api._MagickImageCollection_Append(n,1,i.ptr),e)}clone(e){const n=Me.create();for(let i=0;i<this.length;i++)n.push(te._clone(this[i]));return n._use(e)}coalesce(){this.replaceImages((e,n)=>_._api._MagickImageCollection_Coalesce(e,n.ptr))}combine(e,n){let i=n,l=b.sRGB;return typeof e=="number"?l=e:i=e,this.createImage((d,m)=>_._api._MagickImageCollection_Combine(d,l,m.ptr),i)}complex(e,n){return Ee.use(this[0],i=>(e._setArtifacts(i),this.createImage((l,d)=>_._api._MagickImageCollection_Complex(l,e.complexOperator,d.ptr),n)))}deconstruct(){this.replaceImages((e,n)=>_._api._MagickImageCollection_Deconstruct(e,n.ptr))}evaluate(e,n){return this.createImage((i,l)=>_._api._MagickImageCollection_Evaluate(i,e,l.ptr),n)}flatten(e){return this.mergeImages(St.Flatten,e)}fx(e,n,i){this.throwIfEmpty();let l=X.All,d=i;return typeof n=="number"?l=n:d=n,R(e,m=>this.createImage((v,C)=>_._api._MagickImageCollection_Fx(v,m,l,C.ptr),d))}merge(e){return this.mergeImages(St.Merge,e)}montage(e,n){return this.throwIfEmpty(),this.attachImages(i=>{const l=e._use(d=>A.use(m=>{const v=_._api._MagickImageCollection_Montage(i,d._instance,m.ptr);return this.checkResult(v,m)}));return Me._createFromImages(l,this.getSettings())._use(d=>{const m=e.transparentColor;return m!==void 0&&d.forEach(v=>{v.transparent(m)}),d.merge(n)})})}morph(e){if(this.length<2)throw new N("operation requires at least two images");this.replaceImages((n,i)=>_._api._MagickImageCollection_Morph(n,e,i.ptr))}mosaic(e){return this.mergeImages(St.Mosaic,e)}optimize(){this.replaceImages((e,n)=>_._api._MagickImageCollection_Optimize(e,n.ptr))}optimizePlus(){this.replaceImages((e,n)=>_._api._MagickImageCollection_OptimizePlus(e,n.ptr))}optimizeTransparency(){this.throwIfEmpty(),this.attachImages(e=>{A.usePointer(n=>{_._api._MagickImageCollection_OptimizeTransparency(e,n)})})}ping(e,n){this.readOrPing(!0,e,n)}polynomial(e,n){return this.createImage((i,l)=>Li(e,d=>_._api._MagickImageCollection_Polynomial(i,d,e.length,l.ptr)),n)}quantize(e){this.throwIfEmpty();const n=e===void 0?new Ct:e;return this.attachImages(i=>{n._use(l=>{A.usePointer(d=>{_._api._MagickImageCollection_Quantize(i,l._instance,d)})})}),n.measureErrors?ot._create(this[0]):null}read(e,n){this.readOrPing(!1,e,n)}remap(e,n){this.throwIfEmpty();const i=n===void 0?new Ct:n;this.attachImages(l=>{i._use(d=>{A.use(m=>{_._api._MagickImageCollection_Remap(l,d._instance,e._instance,m.ptr)})})})}resetPage(){this.forEach(e=>{e.resetPage()})}smushHorizontal(e,n){return this.smush(e,!1,n)}smushVertical(e,n){return this.smush(e,!0,n)}trimBounds(){this.mergeImages(St.Trimbounds,()=>{})}write(e,n){this.throwIfEmpty();let i=0,l=0;const d=this[0],m=this.getSettings();n!==void 0?m.format=e:(n=e,m.format=d.format),A.use(C=>{Ie.use(F=>{m._use(z=>{this.attachImages(V=>{i=_._api._MagickImage_WriteBlob(V,z._instance,F.ptr,C.ptr),l=F.value})})})});const v=new Ai(i,l,n);return _e._disposeAfterExecution(v,v.func)}static _createFromImages(e,n){const i=Me.createObject();return i.addImages(e,n._clone()),i}_use(e){return _e._disposeAfterExecution(this,e)}addImages(e,n){n.format=Pe.Unknown;let i=e;for(;i!==0;){const l=_._api._MagickImage_GetNext(i);_._api._MagickImage_SetNext(i,0),this.push(te._createFromImage(i,n)),i=l}}attachImages(e){try{for(let n=0;n<this.length-1;n++)_._api._MagickImage_SetNext(this[n]._instance,this[n+1]._instance);return e(this[0]._instance)}finally{for(let n=0;n<this.length-1;n++)_._api._MagickImage_SetNext(this[n]._instance,0)}}checkResult(e,n){return n.check(()=>e,()=>(_._api._MagickImageCollection_Dispose(e),0))}static createObject(){return Object.create(Me.prototype)}createImage(e,n){this.throwIfEmpty();const i=this.attachImages(d=>A.use(m=>{const v=e(d,m);return this.checkResult(v,m)}));return te._createFromImage(i,this.getSettings())._use(n)}getSettings(){return this[0]._getSettings()._clone()}mergeImages(e,n){return this.createImage((i,l)=>_._api._MagickImageCollection_Merge(i,e,l.ptr),n)}readOrPing(e,n,i){this.dispose(),A.use(l=>{const d=i===void 0?new ke:new ke(i);d._ping=e,typeof n=="string"?(d._fileName=n,d._use(m=>{const v=_._api._MagickImageCollection_ReadFile(m._instance,l.ptr);this.addImages(v,d)})):d._use(m=>{const v=n.byteLength;let C=0;try{C=_._api._malloc(v),_._api.HEAPU8.set(n,C);const F=_._api._MagickImageCollection_ReadBlob(m._instance,C,0,v,l.ptr);this.addImages(F,d)}finally{C!==0&&_._api._free(C)}})})}replaceImages(e){this.throwIfEmpty();const n=this.attachImages(l=>A.use(d=>{const m=e(l,d);return this.checkResult(m,d)})),i=this.getSettings()._clone();this.dispose(),this.addImages(n,i)}smush(e,n,i){return this.createImage((l,d)=>_._api._MagickImageCollection_Smush(l,e,n?1:0,d.ptr),i)}throwIfEmpty(){if(this.length===0)throw new N("operation requires at least one image")}}class ee{_value;constructor(e){this._value=e}static _fromQuantum(e){return new ee(e/Fe.max*100)}multiply(e){return e*this._value/100}toDouble(){return this._value}toString(){return`${parseFloat(this._value.toFixed(2))}%`}_toQuantum(){return Fe.max*(this._value/100)}}class Wi{static use(e,n,i){const l=_._api._MagickRectangle_Create();try{_._api._MagickRectangle_X_Set(l,n.x),_._api._MagickRectangle_Y_Set(l,n.y);let d=n.width,m=n.height;return n.isPercentage&&(d=new ee(n.width).multiply(e.width),m=new ee(n.height).multiply(e.height)),_._api._MagickRectangle_Width_Set(l,d),_._api._MagickRectangle_Height_Set(l,m),i(l)}finally{_._api._MagickRectangle_Dispose(l)}}}class Bi{static _use(e,n,i){let l=0;try{return l=_._api._OffsetInfo_Create(),_._api._PrimaryInfo_X_Set(l,e),_._api._PrimaryInfo_Y_Set(l,n),i(l)}finally{_._api._free(l)}}}class Ni{_values;constructor(){this._values=new Array(7).fill(0)}get(e){return this._values[e]}set(e,n){this._values[e]=n}}class He{_huPhashes=new Map;_hash="";channel;constructor(e,n,i){if(this.channel=e,typeof i=="number")for(let l=0;l<n.length;l++){const d=new Ni;for(let m=0;m<7;m++){const v=_._api._ChannelPerceptualHash_GetHuPhash(i,l,m);d.set(m,v)}this._huPhashes.set(n[l],d)}else this.parseHash(n,i)}huPhash(e,n){if(n<0||n>6)throw new N("Invalid index specified");const i=this._huPhashes.get(e);if(i===void 0)throw new N("Invalid color space specified");return i.get(n)}sumSquaredDistance(e){let n=0;return this._huPhashes.forEach((i,l)=>{for(let d=0;d<7;d++){const m=i.get(d),v=e.huPhash(l,d);n+=(m-v)*(m-v)}}),n}toString(){return this._hash==""&&this.setHash(),this._hash}parseHash(e,n){this._hash=n;let i=0;for(const l of e){const d=new Ni;for(let m=0;m<7;m++,i+=5){const v=Number.parseInt(n.substring(i,i+5),16);if(isNaN(v))throw new N("Invalid hash specified");let C=v/He.powerOfTen(v>>17);(v&65536)!=0&&(C=-C),d.set(m,C)}this._huPhashes.set(l,d)}}static powerOfTen(e){switch(e){case 2:return 100;case 3:return 1e3;case 4:return 1e4;case 5:return 1e5;case 6:return 1e6;default:return 10}}setHash(){this._hash="",this._huPhashes.forEach(e=>{for(let n=0;n<7;n++){let i=e.get(n),l=0;for(;l<7&&Math.abs(i*10)<65356;)i*=10,l++;l<<=1,l<0&&(l|=1),l=(l<<16)+Math.floor(i<0?-(i-.5):i+.5),this._hash+=l.toString(16)}})}}class fe{_red;_green;_blue;constructor(e,n,i){if(typeof e=="string"){const l=n??fe._defaultColorspaces();fe._validateColorSpaces(l);const d=35*l.length;if(e.length!==3*d)throw new N("Invalid hash size");this._red=new He(L.Red,l,e.substring(0,d)),this._blue=new He(L.Blue,l,e.substring(d,d+d)),this._green=new He(L.Green,l,e.substring(d+d))}else this._red=e,this._green=n,this._blue=i}static _create(e,n,i){if(i===0)throw new N("The native operation failed to create an instance");const l=fe.createChannel(e,n,i,L.Red),d=fe.createChannel(e,n,i,L.Green),m=fe.createChannel(e,n,i,L.Blue);return new fe(l,d,m)}static _defaultColorspaces(){return[b.XyY,b.HSB]}static _validateColorSpaces(e){if(e.length<1||e.length>6)throw new N("Invalid number of colorspaces, the minimum is 1 and the maximum is 6");if(new Set(e).size!==e.length)throw new N("Specifying the same colorspace more than once is not allowed")}getChannel(e){switch(e){case L.Red:return this._red;case L.Green:return this._green;case L.Blue:return this._blue;default:return null}}sumSquaredDistance(e){const n=e.getChannel(L.Red),i=e.getChannel(L.Green),l=e.getChannel(L.Blue);if(n===null||i===null||l===null)throw new N("The other perceptual hash should contain a red, green and blue channel.");return this._red.sumSquaredDistance(n)+this._green.sumSquaredDistance(i)+this._blue.sumSquaredDistance(l)}toString(){return this._red.toString()+this._green.toString()+this._blue.toString()}static createChannel(e,n,i,l){const d=_._api._PerceptualHash_GetInstance(e._instance,i,l);return new He(l,n,d)}}class Ue extends Le{image;constructor(e){const n=A.usePointer(l=>_._api._PixelCollection_Create(e._instance,l)),i=_._api._PixelCollection_Dispose;super(n,i),this.image=e}static _create(e){return new Ue(e)}static _use(e,n){const i=new Ue(e);return _e._disposeAfterExecution(i,n)}static _map(e,n,i){const l=new Ue(e);try{l.use(0,0,e.width,e.height,n,d=>{i(d)})}finally{l.dispose()}}getArea(e,n,i,l){return A.usePointer(d=>{const m=_._api._PixelCollection_GetArea(this._instance,e,n,i,l,d),v=i*l*this.image.channelCount;return _._api.HEAPU8.subarray(m,m+v)})}getPixel(e,n){return this.getArea(e,n,1,1)}setArea(e,n,i,l,d){A.usePointer(m=>{const v=d instanceof Uint8Array?d:new Uint8Array(d);Zr(v,C=>{_._api._PixelCollection_SetArea(this._instance,e,n,i,l,C,v.length,m)})})}setPixel(e,n,i){i instanceof Uint8Array?this.setArea(e,n,1,1,i):this.setArea(e,n,1,1,i)}toByteArray(e,n,i,l,d){return this.use(e,n,i,l,d,m=>{if(m===0)return null;const v=i*l*d.length;return _._api.HEAPU8.slice(m,m+v)})}use(e,n,i,l,d,m){return R(d,v=>A.use(C=>{let F=_._api._PixelCollection_ToByteArray(this._instance,e,n,i,l,v,C.ptr);return C.check(()=>{const z=m(F);return F=_._api._MagickMemory_Relinquish(F),z},()=>(F=_._api._MagickMemory_Relinquish(F),null))}))}}const zi={Undefined:0,Average:1,Brightness:2,Lightness:3,MS:4,Rec601Luma:5,Rec601Luminance:6,Rec709Luma:7,Rec709Luminance:8,RMS:9};class We{constructor(e,n,i){this.x=e,this.y=n,this.z=i}x;y;z;static _create(e){return e===0?new We(0,0,0):new We(_._api._PrimaryInfo_X_Get(e),_._api._PrimaryInfo_Y_Get(e),_._api._PrimaryInfo_Z_Get(e))}_use(e){let n=0;try{n=_._api._PrimaryInfo_Create(),_._api._PrimaryInfo_X_Set(n,this.x),_._api._PrimaryInfo_Y_Set(n,this.y),_._api._PrimaryInfo_Z_Set(n,this.z),e(n)}finally{_._api._free(n)}}}class $i{channel;depth;entropy;kurtosis;maximum;mean;minimum;skewness;standardDeviation;constructor(e,n){this.channel=e,this.depth=_._api._ChannelStatistics_Depth_Get(n),this.entropy=_._api._ChannelStatistics_Entropy_Get(n),this.kurtosis=_._api._ChannelStatistics_Kurtosis_Get(n),this.maximum=_._api._ChannelStatistics_Maximum_Get(n),this.mean=_._api._ChannelStatistics_Mean_Get(n),this.minimum=_._api._ChannelStatistics_Minimum_Get(n),this.skewness=_._api._ChannelStatistics_Skewness_Get(n),this.standardDeviation=_._api._ChannelStatistics_StandardDeviation_Get(n)}}class It{_channels=new Map;get channels(){return Array.from(this._channels.keys())}composite(){return this._channels.get(L.Composite)}getChannel(e){const n=this._channels.get(e);return n!==void 0?n:null}static _create(e,n,i){const l=new It;return e.channels.forEach(d=>{(i>>d&1)!=0&&l.addChannel(n,d)}),l.addChannel(n,L.Composite),l}addChannel(e,n){const i=_._api._Statistics_GetInstance(e,n);i!==0&&this._channels.set(n,new $i(n,i))}}class en{static toArray(e){if(e===0)return null;const n=_._api._StringInfo_Datum_Get(e),i=_._api._StringInfo_Length_Get(e);return _._api.HEAPU8.subarray(n,n+i)}}class Qt{constructor(e){this.error=e}error}class te extends Le{_settings;_progress;_warning;constructor(e,n){super(e,_._api._MagickImage_Dispose),this._settings=n}get animationDelay(){return _._api._MagickImage_AnimationDelay_Get(this._instance)}set animationDelay(e){_._api._MagickImage_AnimationDelay_Set(this._instance,e)}get animationIterations(){return _._api._MagickImage_AnimationIterations_Get(this._instance)}set animationIterations(e){_._api._MagickImage_AnimationIterations_Set(this._instance,e)}get animationTicksPerSecond(){return _._api._MagickImage_AnimationTicksPerSecond_Get(this._instance)}set animationTicksPerSecond(e){_._api._MagickImage_AnimationTicksPerSecond_Set(this._instance,e)}get artifactNames(){const e=[];_._api._MagickImage_ResetArtifactIterator(this._instance);let n=_._api._MagickImage_GetNextArtifactName(this._instance);for(;n!==0;)e.push(_._api.UTF8ToString(n)),n=_._api._MagickImage_GetNextArtifactName(this._instance);return e}get attributeNames(){const e=[];_._api._MagickImage_ResetAttributeIterator(this._instance);let n=_._api._MagickImage_GetNextAttributeName(this._instance);fo