PageSourceSearch

https://api.dwo.cc/_nuxt/YvzarOXA.js

js dwo.cc collected 2026-09-28 07:06:04 UTC 9,317 bytes, 1 lines download raw bytes

1import{_ as Z}from"./CMDkOMlB.js";/* empty css        *//* empty css        *//* empty css        *//* empty css        *//* empty css        *//* empty css        *//* empty css        *//* empty css        *//* empty css        *//* empty css        */import{d as Q,u as X,c as b,w as c,o as d,h as t,g as h,i,j as f,t as a,aw as x,Y as m,bD as ee,ah as se,a5 as R,bA as te,a7 as oe,aa as ae,Z as le,a0 as ne,F as ie,r as re,n as u,J as de}from"./7Rh2xM73.js";import{u as ce}from"./Du2YAAgM.js";import{I as k}from"./CZvmqO6i.js";import{I as me}from"./Dk1_49MA.js";const ue={class:"ImageCompress"},pe={key:0,class:"UploadSection"},ge={class:"UploadTitle"},ve={class:"UploadHint"},he={class:"UploadLimit"},_e={key:1,class:"ProcessSection"},Ce={class:"CompareSection"},fe={class:"ImageBox"},ye={class:"ImageHeader"},Ie={class:"Label"},we={class:"ImagePreview"},$e=["src","alt"],be={class:"ImageMeta"},ke={class:"CompareArrow"},Se={class:"ImageBox"},Be={class:"ImageHeader"},ze={class:"Label"},Fe={class:"ImagePreview"},Le=["src","alt"],Ve={key:1,class:"ProcessingMask"},Ue={class:"ImageMeta"},De={key:0,class:"Savings"},Pe={class:"SettingsSection"},Re={class:"SectionTitle"},Ae={class:"SettingsGrid"},Te={class:"SettingItem"},He={class:"Label"},Ne={class:"SettingItem"},Ee={class:"Label"},Me={class:"SettingItem"},We={class:"Label"},Ge={class:"SettingItem"},je={class:"Label"},qe={key:2,class:"BatchSection"},Je={class:"SectionHeader"},Ke={class:"Title"},Oe={class:"SubTitle"},Ye={key:0,class:"BatchList"},Ze={class:"BatchHeader"},Qe={class:"BatchItems"},Xe={class:"BatchThumb"},xe=["src","alt"],es={class:"BatchInfo"},ss={class:"BatchName"},ts={class:"BatchSize"},os={class:"BatchStatus"},as={key:0,class:"BatchDownload"},ls={__name:"ImageCompress",setup(ns){const{t:S}=X(),N=u(null),E=u(null),p=u(null),y=u(""),B=u(""),F=u(0),W=u(null),L=u(80),V=u("original"),I=u(null),w=u(null),g=u([]),A=u(!1),T=u(!1),{notify:z}=ce({imageInfo:p,originalImage:y,compressedImage:B,batchFiles:g}),H=de(()=>{if(!p.value||F.value===0)return 0;const e=(p.value.size-F.value)/p.value.size*100;return Math.round(e)}),U=e=>e<1024?e+" B":e<1024*1024?(e/1024).toFixed(1)+" KB":(e/(1024*1024)).toFixed(2)+" MB",G=e=>{const s=e.target.files[0];s&&j(s)},j=e=>{if(!e.type.startsWith("image/")){z("error",S("tools.imageCompress.pleaseSelectImage"));return}if(e.size>10*1024*1024){z("error",S("tools.imageCompress.fileTooLarge"));return}W.value=e;const s=new FileReader;s.onload=o=>{y.value=o.target.result;const l=new Image;l.onload=()=>{p.value={name:e.name,size:e.size,width:l.width,height:l.height,type:e.type},M()},l.src=o.target.result},s.readAsDataURL(e)},M=()=>{if(!y.value||!p.value)return;B.value="";const e=new Image;e.onload=()=>{let s=e.width,o=e.height;I.value&&s>I.value&&(o=o*I.value/s,s=I.value),w.value&&o>w.value&&(s=s*w.value/o,o=w.value);const l=document.createElement("canvas");l.width=s,l.height=o,l.getContext("2d").drawImage(e,0,0,s,o);let r=p.value.type;V.value!=="original"&&(r=`image/${V.value}`),l.toBlob(v=>{F.value=v.size;const $=new FileReader;$.onload=C=>{B.value=C.target.result},$.readAsDataURL(v)},r,L.value/100)},e.src=y.value},D=()=>{y.value&&M()},q=e=>{const s=Array.from(e.target.files);s.length!==0&&(g.value=s.map(o=>({file:o,name:o.name,size:o.size,preview:"",status:"pending",compressedSize:0,compressedData:null})),g.value.forEach((o,l)=>{if(o.file.type.startsWith("image/")){const _=new FileReader;_.onload=r=>{g.value[l].preview=r.target.result},_.readAsDataURL(o.file)}}),T.value=!1)},J=async()=>{if(g.value.length!==0){A.value=!0;for(let e=0;e<g.value.length;e++){const s=g.value[e];s.status="processing";try{const o=await K(s.file);s.compressedData=o.data,s.compressedSize=o.size,s.status="done"}catch{s.status="error"}}A.value=!1,T.value=!0,z("success",S("tools.imageCompress.batchComplete"))}},K=e=>new Promise((s,o)=>{const l=new FileReader;l.onload=_=>{const r=new Image;r.onload=()=>{const v=document.createElement("canvas");v.width=r.width,v.height=r.height,v.getContext("2d").drawImage(r,0,0),v.toBlob(C=>{const P=new FileReader;P.onload=n=>{s({data:n.target.result,size:C.size})}
1,P.readAsDataURL(C)},e.type,L.value/100)},r.src=_.target.result},l.onerror=o,l.readAsDataURL(e)}),O=()=>{const e=g.value.filter(s=>s.status==="done");if(e.length===0){z("warning",S("tools.imageCompress.noDownloadable"));return}e.forEach((s,o)=>{setTimeout(()=>{const l=document.createElement("a");l.href=s.compressedData;const _=s.name.split("."),r=_.pop(),v=_.join(".");l.download=`${v}_compressed.${r}`,document.body.appendChild(l),l.click(),document.body.removeChild(l)},o*200)}),z("success",S("tools.imageCompress.batchDownloadStarted"))};return(e,s)=>{const o=x,l=se,_=te,r=ae,v=oe,$=le,C=ne,P=Z;return d(),b(P,{title:e.$t("tools.imageCompress.title"),description:e.$t("tools.imageCompress.subtitle"),tags:["image","compress","optimize"]},{default:c(()=>[t("div",ue,[p.value?(d(),h("div",_e,[t("div",Ce,[t("div",fe,[t("div",ye,[t("span",Ie,a(e.$t("tools.imageCompress.original")),1),i(o,{color:"arcoblue"},{default:c(()=>[m(a(U(p.value.size)),1)]),_:1})]),t("div",we,[t("img",{src:y.value,alt:e.$t("tools.imageCompress.original")},null,8,$e)]),t("div",be,[t("span",null,a(p.value.width)+" × "+a(p.value.height)+" px",1)])]),t("div",ke,[i(f(ee),{class:"ArrowIcon"})]),t("div",Se,[t("div",Be,[t("span",ze,a(e.$t("tools.imageCompress.compressed")),1),i(o,{color:H.value>50?"green":"arcoblue"},{default:c(()=>[m(a(U(F.value)),1)]),_:1},8,["color"])]),t("div",Fe,[B.value?(d(),h("img",{key:0,src:B.value,alt:e.$t("tools.imageCompress.compressed")},null,8,Le)):(d(),h("div",Ve,[i(l),t("span",null,a(e.$t("tools.imageCompress.compressing")),1)]))]),t("div",Ue,[H.value>0?(d(),h("span",De,a(e.$t("tools.imageCompress.saved",{n:H.value})),1)):R("",!0)])])]),t("div",Pe,[t("div",Re,[i(f(k)),m(" "+a(e.$t("tools.imageCompress.settings")),1)]),t("div",Ae,[t("div",Te,[t("span",He,a(e.$t("tools.imageCompress.quality")),1),i(_,{modelValue:L.value,"onUpdate:modelValue":s[1]||(s[1]=n=>L.value=n),min:10,max:100,step:5,"show-input":"",onChange:D},null,8,["modelValue"])]),t("div",Ne,[t("span",Ee,a(e.$t("tools.imageCompress.outputFormat")),1),i(v,{modelValue:V.value,"onUpdate:modelValue":s[2]||(s[2]=n=>V.value=n),type:"button",onChange:D},{default:c(()=>[i(r,{value:"original"},{default:c(()=>[m(a(e.$t("tools.imageCompress.formatOriginal")),1)]),_:1}),i(r,{value:"jpeg"},{default:c(()=>[...s[6]||(s[6]=[m("JPEG",-1)])]),_:1}),i(r,{value:"png"},{default:c(()=>[...s[7]||(s[7]=[m("PNG",-1)])]),_:1}),i(r,{value:"webp"},{default:c(()=>[...s[8]||(s[8]=[m("WebP",-1)])]),_:1})]),_:1},8,["modelValue"])]),t("div",Me,[t("span",We,a(e.$t("tools.imageCompress.maxWidth")),1),i($,{modelValue:I.value,"onUpdate:modelValue":s[3]||(s[3]=n=>I.value=n),min:100,max:4096,step:100,placeholder:e.$t("tools.imageCompress.unlimited"),onChange:D},null,8,["modelValue","placeholder"])]),t("div",Ge,[t("span",je,a(e.$t("tools.imageCompress.maxHeight")),1),i($,{modelValue:w.value,"onUpdate:modelValue":s[4]||(s[4]=n=>w.value=n),min:100,max:4096,step:100,placeholder:e.$t("tools.imageCompress.unlimited"),onChange:D},null,8,["modelValue","placeholder"])])])])])):(d(),h("div",pe,[t("input",{ref_key:"fileInput",ref:N,type:"file",accept:"image/*",style:{display:"none"},onChange:G},null,544),t("div",{class:"UploadArea",onClick:s[0]||(s[0]=n=>N.value.click())},[i(f(k),{class:"UploadIcon"}),t("div",ge,a(e.$t("tools.imageCompress.uploadText")),1),t("div",ve,a(e.$t("tools.imageCompress.uploadHint")),1),t("div",he,a(e.$t("tools.imageCompress.uploadLimit")),1)])])),p.value?R("",!0):(d(),h("div",qe,[t("div",Je,[t("span",Ke,[i(f(k)),m(" "+a(e.$t("tools.imageCompress.batchCompress")),1)]),t("span",Oe,a(e.$t("tools.imageCompress.batchSubtitle")),1)]),t("input",{ref_key:"batchInput",ref:E,type:"file",accept:"image/*",multiple:"",style:{display:"none"},onChange:q},null,544),i(C,{type:"outline",onClick:s[5]||(s[5]=n=>E.value.click())},{default:c(()=>[i(f(k)),m(" "+a(e.$t("tools.imageCompress.selectMultiple")),1)]),_:1}),g.value.length>0?(d(),h("div",Ye,[t("div",Ze,[t("span",null,a(e.$t("tools.imageCompress.totalFiles",{n:g.value.length})),1),i(C,{type:"primary",loading:A.value,onClick:J},{default:c(()=>[i(f(me)),m(" "+a(e.$t("tools.imageCompress.startBatch")),1)]),_:1},8,["loading"])]),t("div",Qe,[(d(!0),h(ie,null,re(g.value,(n,Y)=>(d(),h("div",{key:Y,class:"BatchItem"},[t("div",Xe,[n.preview?(d(),h("img",{key:0,src:n.preview,alt:e.$t("tools.imageCompress.preview")+" "+n.name},null,8,xe)):(d(),b(f(k),{key:1}))]),t("div",es,[t("div",ss,a(n.name),1),t("div",ts,a(U(n.size)),1)]),t("div",os,[n.status==="pending"?(d(),b(o,{key:0,color:"gray"},{default:c(()=>[m(a(e.$t("tools.imageCompress.pending")),1)]),_:1})):n.status==="processing"?(d(),b(o,{key:1,color:"arcoblue"},{default:c(()=>[m(a(e.$t("tools.imageCompress.processing")),1)]),_:1})):n.status==="done"?(d(),b(o,{key:2,color:"green"},{default:c(()=>
1[m(a(U(n.compressedSize)),1)]),_:2},1024)):(d(),b(o,{key:3,color:"red"},{default:c(()=>[m(a(e.$t("tools.imageCompress.failed")),1)]),_:1}))])]))),128))]),T.value?(d(),h("div",as,[i(C,{type:"primary",onClick:O},{default:c(()=>[i(f(k)),m(" "+a(e.$t("tools.imageCompress.downloadAll")),1)]),_:1})])):R("",!0)])):R("",!0)]))])]),_:1},8,["title","description"])}}},ws=Q(ls,[["__scopeId","data-v-6cbeebd7"]]);export{ws as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.