heic-d-code 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Heic-D-Code.d.ts +5 -5
- package/Heic-D-Code.js +25 -40
- package/Heic-D-Code.wasm +0 -0
- package/README.md +10 -6
- package/package.json +1 -1
package/Heic-D-Code.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
// An ImageData-like object because ImageData isn't transferrable
|
|
3
|
-
export type DecodeOutput =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
export type DecodeOutput = [
|
|
4
|
+
ImageDataArray,
|
|
5
|
+
number,
|
|
6
|
+
number,
|
|
7
|
+
];
|
|
8
8
|
|
|
9
9
|
export type Module = {
|
|
10
10
|
decode(inData: Uint8Array): DecodeOutput;
|
package/Heic-D-Code.js
CHANGED
|
@@ -1,40 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
async function(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
f
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
p[m].K=h);return[]})},b:(a,b,c,d,e)=>{b=Q(b);let f=g=>g;if(0===d){var l=32-8*c;f=g=>g<<l>>>l;e=f(e)}P(a,{name:b,fromWireType:f,toWireType:(g,h)=>h,J:8,readValueFromPointer:Aa(b,c,0!==d),H:null})},a:(a,b,c)=>{function d(f){return new e(C.buffer,G[f+4>>2],G[f>>2])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=Q(c);P(a,{name:c,fromWireType:d,J:8,readValueFromPointer:d},{O:!0})},g:(a,b)=>{b=Q(b);P(a,{name:b,fromWireType:function(c){for(var d=
|
|
27
|
-
G[c>>2],e=c+4,f,l=e,g=0;g<=d;++g){var h=e+g;if(g==d||0==u[h]){if(l){for(var m=l+(h-l),k=l;!(k>=m)&&u[k];)++k;l=Pa.decode(u.subarray(l,k))}else l="";void 0===f?f=l:(f+=String.fromCharCode(0),f+=l);l=h+1}}U(c);return f},toWireType:function(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e,f="string"==typeof d;if(!(f||ArrayBuffer.isView(d)&&1==d.BYTES_PER_ELEMENT))throw new R("Cannot pass non-string to std::string");if(f)for(var l=e=0;l<d.length;++l){var g=d.charCodeAt(l);127>=g?e++:2047>=g?
|
|
28
|
-
e+=2:55296<=g&&57343>=g?(e+=4,++l):e+=3}else e=d.length;l=r(4+e+1);g=l+4;G[l>>2]=e;f?V(d,g,e+1):u.set(d,g);null!==c&&c.push(U,l);return l},J:8,readValueFromPointer:L,H(c){U(c)}})},c:(a,b,c)=>{c=Q(c);if(2===b){var d=Ra;var e=Sa;var f=Ta;var l=g=>E[g>>1]}else 4===b&&(d=Ua,e=Va,f=Wa,l=g=>G[g>>2]);P(a,{name:c,fromWireType:g=>{for(var h=G[g>>2],m,k=g+4,n=0;n<=h;++n){var x=g+4+n*b;if(n==h||0==l(x))k=d(k,x-k),void 0===m?m=k:(m+=String.fromCharCode(0),m+=k),k=x+b}U(g);return m},toWireType:(g,h)=>{if("string"!=
|
|
29
|
-
typeof h)throw new R(`Cannot pass non-string to C++ string type ${c}`);var m=f(h),k=r(4+m+b);G[k>>2]=m/b;e(h,k+4,m+b);null!==g&&g.push(U,k);return k},J:8,readValueFromPointer:L,H(g){U(g)}})},x:(a,b,c,d,e,f)=>{K[a]={name:Q(b),P:T(c,d),R:T(e,f),elements:[]}},w:(a,b,c,d,e,f,l,g,h)=>{K[a].elements.push({N:b,L:T(c,d),M:e,T:f,S:T(l,g),U:h})},i:(a,b)=>{b=Q(b);P(a,{V:!0,name:b,J:0,fromWireType:()=>{},toWireType:()=>{}})},l:()=>{},m:(a,b)=>{W[a]&&(clearTimeout(W[a].id),delete W[a]);if(!b)return 0;var c=setTimeout(()=>
|
|
30
|
-
{delete W[a];Ya(()=>ab(a,performance.now()))},b);W[a]={id:c,W:b};return 0},n:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();G[a>>2]=60*Math.max(f,e);F[b>>2]=Number(f!=e);b=l=>{var g=Math.abs(l);return`UTC${0<=l?"-":"+"}${String(Math.floor(g/60)).padStart(2,"0")}${String(g%60).padStart(2,"0")}`};a=b(f);b=b(e);e<f?(V(a,c,17),V(b,d,17)):(V(a,d,17),V(b,c,17))},p:a=>{var b=u.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=
|
|
31
|
-
c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-B.buffer.byteLength+65535)/65536|0;try{B.grow(d);oa();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},s:()=>52,t:()=>52,u:function(){return 70},r:(a,b,c,d)=>{for(var e=0,f=0;f<c;f++){var l=G[b>>2],g=G[b+4>>2];b+=8;for(var h=0;h<g;h++){var m=a,k=u[l+h],n=Za[m];if(0===k||10===k){m=1===m?fa:y;for(k=0;n[k]&&!(NaN<=k);)++k;k=Pa.decode(n.buffer?n.subarray(0,k):new Uint8Array(n.slice(0,
|
|
32
|
-
k)));m(k);n.length=0}else n.push(k)}e+=g}G[d>>2]=e;return 0},k:a=>{throw new J(a);}},Y=await (async function(){H++;var a={a:cb};qa??=p.locateFile?da+"Heic-D-Code.wasm":(new URL("Heic-D-Code.wasm",import.meta.url)).href;Y=(await ta(a)).instance.exports;B=Y.y;oa();Ja=Y.F;a=Y;La=a.A;ba=a.B;U=a.C;$a=a.D;r=a.E;ab=a.G;H--;0==H&&I&&(a=I,I=null,a());return Y}());
|
|
33
|
-
function Z(){if(0<H)I=Z;else if(0<H)I=Z;else if(p.calledRun=!0,!A){na=!0;Y.z();ha?.(p);var a=$a;try{var b=a(0,0);throw new J(b);}catch(c){Xa(c)}}}Z();na?moduleRtn=p:moduleRtn=new Promise((a,b)=>{ha=a;ia=b});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return moduleRtn;
|
|
37
|
-
}
|
|
38
|
-
);
|
|
39
|
-
})();
|
|
40
|
-
export default Module;
|
|
1
|
+
async function Module(moduleArg={}){var moduleRtn;var n=moduleArg,aa="object"==typeof window,ba="undefined"!=typeof WorkerGlobalScope;n={decode(a){try{const b=q(a.length);if(0===b)throw"Memory allocation error";u.set(a,b);const [c,d,e,f]=n._decode(b,a.length);if(0!==e)throw`libheif error code ${e}`;return[new Uint8ClampedArray(u.subarray(f,f+c*d*4)),c,d]}finally{ca()}}};var da=import.meta.url,ea="",fa,v;
|
|
2
|
+
if(aa||ba){try{ea=(new URL(".",da)).href}catch{}ba&&(v=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});fa=async a=>{a=await fetch(a,{credentials:"same-origin"});if(a.ok)return a.arrayBuffer();throw Error(a.status+" : "+a.url);}}var ha=console.log.bind(console),w=console.error.bind(console),x=!1,ia,ja,z,C,u,D,E,F,G,ka,la,ma,na,oa=!1;
|
|
3
|
+
function pa(){var a=z.buffer;C=new Int8Array(a);D=new Int16Array(a);u=new Uint8Array(a);E=new Uint16Array(a);F=new Int32Array(a);G=new Uint32Array(a);ka=new Float32Array(a);la=new Float64Array(a);ma=new BigInt64Array(a);na=new BigUint64Array(a)}var H=0,I=null;function qa(a){a="Aborted("+a+")";w(a);x=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ja?.(a);throw a;}var ra;
|
|
4
|
+
async function sa(a){try{var b=await fa(a);return new Uint8Array(b)}catch{}if(v)a=v(a);else throw"both async and sync fetching of the wasm failed";return a}async function ta(a,b){try{var c=await sa(a);return await WebAssembly.instantiate(c,b)}catch(d){w(`failed to asynchronously prepare wasm: ${d}`),qa(d)}}
|
|
5
|
+
async function ua(a){var b=ra;try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){w(`wasm streaming compile failed: ${d}`),w("falling back to ArrayBuffer instantiation")}return ta(b,a)}class J{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var K={},va=a=>{for(;a.length;){var b=a.pop();a.pop()(b)}};function L(a){return this.H(G[a>>2])}
|
|
6
|
+
var M={},N={},O={},wa=class extends Error{constructor(a){super(a);this.name="InternalError"}},xa=(a,b,c)=>{function d(g){g=c(g);if(g.length!==a.length)throw new wa("Mismatched type converter count");for(var h=0;h<a.length;++h)P(a[h],g[h])}a.forEach(g=>O[g]=b);var e=Array(b.length),f=[],k=0;b.forEach((g,h)=>{N.hasOwnProperty(g)?e[h]=N[g]:(f.push(g),M.hasOwnProperty(g)||(M[g]=[]),M[g].push(()=>{e[h]=N[g];++k;k===f.length&&d(e)}))});0===f.length&&d(e)},Q=a=>{for(var b="";;){var c=u[a++];if(!c)return b;
|
|
7
|
+
b+=String.fromCharCode(c)}},R=class extends Error{constructor(a){super(a);this.name="BindingError"}},ya=a=>{throw new R(a);};function za(a,b,c={}){var d=b.name;if(!a)throw new R(`type "${d}" must have a positive integer typeid pointer`);if(N.hasOwnProperty(a)){if(c.R)return;throw new R(`Cannot register type '${d}' twice`);}N[a]=b;delete O[a];M.hasOwnProperty(a)&&(b=M[a],delete M[a],b.forEach(e=>e()))}function P(a,b,c={}){return za(a,b,c)}
|
|
8
|
+
var Aa=(a,b,c)=>{switch(b){case 1:return c?d=>C[d]:d=>u[d];case 2:return c?d=>D[d>>1]:d=>E[d>>1];case 4:return c?d=>F[d>>2]:d=>G[d>>2];case 8:return c?d=>ma[d>>3]:d=>na[d>>3];default:throw new TypeError(`invalid integer width (${b}): ${a}`);}},Ca=[],S=[0,1,,1,null,1,!0,1,!1,1],Da=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:const b=Ca.pop()||S.length;S[b]=a;S[b+1]=1;return b}},Ea={name:"emscripten::val",H:a=>{if(!a)throw new R(`Cannot use deleted val. handle = ${a}`);
|
|
9
|
+
var b=S[a];9<a&&0===--S[a+1]&&(S[a]=void 0,Ca.push(a));return b},K:(a,b)=>Da(b),L,I:null},Fa=(a,b)=>{switch(b){case 4:return function(c){return this.H(ka[c>>2])};case 8:return function(c){return this.H(la[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Ga={ftfnn:function(a,b,c,d,e,f,k,g,h){return function(m,l){m=g(null,m);l=h(null,l);l=c(d,m,l);return f(l)}}},Ha=(a,b)=>{var c=n;if(void 0===c[a].J){var d=c[a];c[a]=function(...e){if(!c[a].J.hasOwnProperty(e.length))throw new R(`Function '${b}' called with an invalid number of arguments (${e.length}) - expects one of (${c[a].J})!`);
|
|
10
|
+
return c[a].J[e.length].apply(this,e)};c[a].J=[];c[a].J[d.M]=d}},Ia=(a,b,c)=>{if(n.hasOwnProperty(a)){if(void 0===c||void 0!==n[a].J&&void 0!==n[a].J[c])throw new R(`Cannot register public name '${a}' twice`);Ha(a,a);if(n[a].J.hasOwnProperty(c))throw new R(`Cannot register multiple overloads of a function with the same number of arguments (${c})!`);n[a].J[c]=b}else n[a]=b,n[a].M=c},Ja=(a,b)=>{for(var c=[],d=0;d<a;d++)c.push(G[b+4*d>>2]);return c},Ka,T=(a,b)=>{a=Q(a);var c=Ka.get(b);if("function"!=
|
|
11
|
+
typeof c)throw new R(`unknown function pointer with signature ${a}: ${b}`);return c};class La extends Error{}
|
|
12
|
+
var Na=a=>{a=Ma(a);var b=Q(a);U(a);return b},Oa=(a,b)=>{function c(f){e[f]||N[f]||(O[f]?O[f].forEach(c):(d.push(f),e[f]=!0))}var d=[],e={};b.forEach(c);throw new La(`${a}: `+d.map(Na).join([", "]));},Pa=a=>{a=a.trim();const b=a.indexOf("(");return-1===b?a:a.slice(0,b)},V=(a,b,c)=>{var d=u;if(0<c){c=b+c-1;for(var e=0;e<a.length;++e){var f=a.codePointAt(e);if(127>=f){if(b>=c)break;d[b++]=f}else if(2047>=f){if(b+1>=c)break;d[b++]=192|f>>6;d[b++]=128|f&63}else if(65535>=f){if(b+2>=c)break;d[b++]=224|
|
|
13
|
+
f>>12;d[b++]=128|f>>6&63;d[b++]=128|f&63}else{if(b+3>=c)break;d[b++]=240|f>>18;d[b++]=128|f>>12&63;d[b++]=128|f>>6&63;d[b++]=128|f&63;e++}}d[b]=0}},Qa=new TextDecoder,W=(a,b,c,d)=>{c=b+c;if(d)return c;for(;a[b]&&!(b>=c);)++b;return b},Ra=new TextDecoder("utf-16le"),Sa=(a,b,c)=>{a>>=1;return Ra.decode(E.subarray(a,W(E,a,b/2,c)))},Ta=(a,b,c)=>{c??=2147483647;if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)D[b>>1]=a.charCodeAt(e),b+=2;D[b>>1]=0;return b-d},Ua=a=>2*a.length,
|
|
14
|
+
Va=(a,b,c)=>{var d="";a>>=2;for(var e=0;!(e>=b/4);e++){var f=G[a+e];if(!f&&!c)break;d+=String.fromCodePoint(f)}return d},Wa=(a,b,c)=>{c??=2147483647;if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var f=a.codePointAt(e);65535<f&&e++;F[b>>2]=f;b+=4;if(b+4>c)break}F[b>>2]=0;return b-d},Xa=a=>{for(var b=0,c=0;c<a.length;++c)65535<a.codePointAt(c)&&c++,b+=4;return b},X={},Ya=a=>{if(!(a instanceof J||"unwind"==a))throw a;},Za=a=>{if(!x)try{a()}catch(b){Ya(b)}},$a=[null,[],[]],Ma,ca,U,ab,q,
|
|
15
|
+
bb,cb={q:()=>{},v:()=>qa(""),o:a=>{var b=K[a];delete K[a];var c=b.elements,d=c.length,e=c.map(g=>g.P).concat(c.map(g=>g.W)),f=b.T,k=b.U;xa([a],e,g=>{c.forEach((h,m)=>{var l=g[m],p=h.N,A=h.O,y=g[m+d],t=h.V,Z=h.X;h.read=r=>l.H(p(A,r));h.write=(r,B)=>{var Ba=[];t(Z,r,y.K(Ba,B));va(Ba)}});return[{name:b.name,H:h=>{for(var m=Array(d),l=0;l<d;++l)m[l]=c[l].read(h);k(h);return m},K:(h,m)=>{if(d!==m.length)throw new TypeError(`Incorrect number of tuple elements for ${b.name}: expected=${d}, actual=${m.length}`);
|
|
16
|
+
for(var l=f(),p=0;p<d;++p)c[p].write(l,m[p]);null!==h&&h.push(k,l);return l},L,I:k}]})},e:(a,b,c,d,e)=>{b=Q(b);d=0n===d;let f=k=>k;if(d){const k=8*c;f=g=>BigInt.asUintN(k,g);e=f(e)}P(a,{name:b,H:f,K:(k,g)=>{"number"==typeof g&&(g=BigInt(g));return g},L:Aa(b,c,!d),I:null})},h:(a,b,c,d)=>{b=Q(b);P(a,{name:b,H:function(e){return!!e},K:function(e,f){return f?c:d},L:function(e){return this.H(u[e])},I:null})},f:a=>P(a,Ea),d:(a,b,c)=>{b=Q(b);P(a,{name:b,H:d=>d,K:(d,e)=>e,L:Fa(b,c),I:null})},j:(a,b,c,d,e,
|
|
17
|
+
f,k)=>{var g=Ja(b,c);a=Q(a);a=Pa(a);e=T(d,e);Ia(a,function(){Oa(`Cannot call ${a} due to unbound types`,g)},b-1);xa([],g,h=>{var m=a;var l=a;h=[h[0],null].concat(h.slice(1));var p=e,A=h.length;if(2>A)throw new R("argTypes array size mismatch! Must at least get return value and 'this' types!");var y=null!==h[1]&&!1,t;a:{for(t=1;t<h.length;++t)if(null!==h[t]&&void 0===h[t].I){t=!0;break a}t=!1}var Z=!h[0].S,r=h[0],B=h[1];p=[l,ya,p,f,va,r.H.bind(r),B?.K.bind(B)];for(r=2;r<A;++r)B=h[r],p.push(B.K.bind(B));
|
|
18
|
+
if(!t)for(r=y?1:2;r<h.length;++r)null!==h[r].I&&p.push(h[r].I);A=[y?"t":"f",Z?"t":"f",k?"t":"f"];for(y=y?1:2;y<h.length;++y)t=h[y],A.push(void 0===t.I?"u":null===t.I?"n":"t");h=Ga[A.join("")](...p);l=Object.defineProperty(h,"name",{value:l});h=b-1;if(!n.hasOwnProperty(m))throw new wa("Replacing nonexistent public symbol");void 0!==n[m].J&&void 0!==h?n[m].J[h]=l:(n[m]=l,n[m].M=h);return[]})},b:(a,b,c,d,e)=>{b=Q(b);let f=g=>g;if(0===d){var k=32-8*c;f=g=>g<<k>>>k;e=f(e)}P(a,{name:b,H:f,K:(g,h)=>h,L:Aa(b,
|
|
19
|
+
c,0!==d),I:null})},a:(a,b,c)=>{function d(f){return new e(C.buffer,G[f+4>>2],G[f>>2])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=Q(c);P(a,{name:c,H:d,L:d},{R:!0})},g:(a,b)=>{b=Q(b);P(a,{name:b,H(c){var d=(d=c+4)?Qa.decode(u.subarray(d,W(u,d,G[c>>2],!0))):"";U(c);return d},K(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e,f="string"==typeof d;if(!(f||ArrayBuffer.isView(d)&&1==d.BYTES_PER_ELEMENT))throw new R("Cannot pass non-string to std::string");
|
|
20
|
+
if(f)for(var k=e=0;k<d.length;++k){var g=d.charCodeAt(k);127>=g?e++:2047>=g?e+=2:55296<=g&&57343>=g?(e+=4,++k):e+=3}else e=d.length;k=q(4+e+1);g=k+4;G[k>>2]=e;f?V(d,g,e+1):u.set(d,g);null!==c&&c.push(U,k);return k},L,I(c){U(c)}})},c:(a,b,c)=>{c=Q(c);if(2===b){var d=Sa;var e=Ta;var f=Ua}else d=Va,e=Wa,f=Xa;P(a,{name:c,H:k=>{var g=d(k+4,G[k>>2]*b,!0);U(k);return g},K:(k,g)=>{if("string"!=typeof g)throw new R(`Cannot pass non-string to C++ string type ${c}`);var h=f(g),m=q(4+h+b);G[m>>2]=h/b;e(g,m+4,
|
|
21
|
+
h+b);null!==k&&k.push(U,m);return m},L,I(k){U(k)}})},x:(a,b,c,d,e,f)=>{K[a]={name:Q(b),T:T(c,d),U:T(e,f),elements:[]}},w:(a,b,c,d,e,f,k,g,h)=>{K[a].elements.push({P:b,N:T(c,d),O:e,W:f,V:T(k,g),X:h})},i:(a,b)=>{b=Q(b);P(a,{S:!0,name:b,H:()=>{},K:()=>{}})},l:()=>{},m:(a,b)=>{X[a]&&(clearTimeout(X[a].id),delete X[a]);if(!b)return 0;var c=setTimeout(()=>{delete X[a];Za(()=>bb(a,performance.now()))},b);X[a]={id:c,Y:b};return 0},n:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();
|
|
22
|
+
e=(new Date(e,6,1)).getTimezoneOffset();G[a>>2]=60*Math.max(f,e);F[b>>2]=Number(f!=e);b=k=>{var g=Math.abs(k);return`UTC${0<=k?"-":"+"}${String(Math.floor(g/60)).padStart(2,"0")}${String(g%60).padStart(2,"0")}`};a=b(f);b=b(e);e<f?(V(a,c,17),V(b,d,17)):(V(a,d,17),V(b,c,17))},p:a=>{var b=u.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-z.buffer.byteLength+65535)/65536|0;try{z.grow(d);
|
|
23
|
+
pa();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},s:()=>52,t:()=>52,u:function(){return 70},r:(a,b,c,d)=>{for(var e=0,f=0;f<c;f++){var k=G[b>>2],g=G[b+4>>2];b+=8;for(var h=0;h<g;h++){var m=a,l=u[k+h],p=$a[m];0===l||10===l?(m=1===m?ha:w,l=W(p,0),l=Qa.decode(p.buffer?p.subarray(0,l):new Uint8Array(p.slice(0,l))),m(l),p.length=0):p.push(l)}e+=g}G[d>>2]=e;return 0},k:a=>{throw new J(a);}},Y=await (async function(){H++;var a={a:cb};ra??=n.locateFile?ea+"Heic-D-Code.wasm":(new URL("Heic-D-Code.wasm",
|
|
24
|
+
import.meta.url)).href;Y=(await ua(a)).instance.exports;z=Y.y;pa();Ka=Y.F;a=Y;Ma=a.A;ca=a.B;U=a.C;ab=a.D;q=a.E;bb=a.G;H--;0==H&&I&&(a=I,I=null,a());return Y}());function db(){if(0<H)I=db;else if(0<H)I=db;else if(n.calledRun=!0,!x){oa=!0;Y.z();ia?.(n);var a=ab;try{var b=a(0,0);throw new J(b);}catch(c){Ya(c)}}}db();oa?moduleRtn=n:moduleRtn=new Promise((a,b)=>{ia=a;ja=b});
|
|
25
|
+
;return moduleRtn}export default Module;
|
package/Heic-D-Code.wasm
CHANGED
|
Binary file
|
package/README.md
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
# Heic-D-Code
|
|
2
|
+
|
|
2
3
|
- A wasm build of libheif whose only purpose is to decode `.heif` image or the first image of a `.heic` for use in a browser. Its size is half of other libraries like `heic2any` or `heic-to`.
|
|
3
4
|
- Used in [SnapFridge](https://github.com/msqr1/SnapFridge)
|
|
4
|
-
- Version: libde265 1.0.16, libheif 1.
|
|
5
|
+
- Version: libde265 1.0.16, libheif 1.20.1, emscripten 4.0.12
|
|
5
6
|
|
|
6
7
|
# Building instruction (from scratch)
|
|
8
|
+
|
|
9
|
+
Try to use Ninja
|
|
10
|
+
|
|
7
11
|
```bash
|
|
8
12
|
git clone --depth 1 https://github.com/msqr1/Heic-D-Code &&
|
|
9
13
|
cd Heic-D-Code &&
|
|
@@ -16,6 +20,7 @@ cmake --build . --config Release -j$(nproc)
|
|
|
16
20
|
```
|
|
17
21
|
|
|
18
22
|
# Usage
|
|
23
|
+
|
|
19
24
|
```mjs
|
|
20
25
|
import initDecoder from "./Heic-D-Code.js";
|
|
21
26
|
|
|
@@ -26,12 +31,11 @@ const context = canvas.getContext("2d");
|
|
|
26
31
|
try {
|
|
27
32
|
const heic = await fetch("example.heic");
|
|
28
33
|
const inData = await heic.bytes();
|
|
29
|
-
const
|
|
34
|
+
const decodeOutput = decoder.decode(inData);
|
|
30
35
|
canvas.width = width;
|
|
31
36
|
canvas.height = height;
|
|
32
|
-
ctx.putImageData(new ImageData(
|
|
33
|
-
}
|
|
34
|
-
catch(e) {
|
|
37
|
+
ctx.putImageData(new ImageData(...decodeOutput), 0, 0);
|
|
38
|
+
} catch (e) {
|
|
35
39
|
console.log(e);
|
|
36
40
|
}
|
|
37
|
-
```
|
|
41
|
+
```
|
package/package.json
CHANGED