import{J as x}from"./jszip.min-CRsa9W6H.js";import{_ as A,b as h,d,i as I,p as C,G as U,e as y,F as D,B as M,z as u,n as k}from"./index-DGJ6dnLh.js";const G={name:"ImageEditor",data(){return{images:[],currentIndex:null,channel:"rgba",mode:"view",drawing:!1,originalImageData:null}},computed:{currentImage(){return this.images[this.currentIndex]||null}},methods:{onFilesSelected(r){const e=Array.from(r.target.files);this.images=e.map(n=>({file:n,preview:URL.createObjectURL(n),name:n.name})),this.images.length&&this.loadImage(0)},loadImage(r){this.currentIndex=r;const e=new Image;e.onload=()=>{const n=this.$refs.canvas,s=n.getContext("2d");n.width=e.width,n.height=e.height,s.drawImage(e,0,0),this.originalImageData=s.getImageData(0,0,n.width,n.height),this.updateChannelView()},e.src=this.images[r].preview},setMode(r){this.mode=r},updateChannelView(){if(!this.originalImageData)return;const e=this.$refs.canvas.getContext("2d"),n=new ImageData(new Uint8ClampedArray(this.originalImageData.data),this.originalImageData.width,this.originalImageData.height);for(let s=0;s>8&255,a[14]=o&255,a[15]=o>>8&255,a[16]=24;const i=new Uint8Array(s*o*3);let l=0;for(let f=o-1;f>=0;f--)for(let w=0;w{t.onload=()=>{const i=document.createElement("canvas"),l=i.getContext("2d");i.width=t.width,i.height=t.height,l.drawImage(t,0,0);const c=l.getImageData(0,0,i.width,i.height),g=this.convertImageDataToTGA(c),m=o.name.replace(/\.(jpg|jpeg|png)$/i,".tga");r.file(m,g),a()}})}const e=await r.generateAsync({type:"blob"}),n=document.createElement("a");n.href=URL.createObjectURL(e),n.download="images_export.zip",n.click(),URL.revokeObjectURL(n.href)},convertImageDataToTGA(r){const{width:e,height:n,data:s}=r,o=new Uint8Array(18);o[2]=2,o[12]=e&255,o[13]=e>>8&255,o[14]=n&255,o[15]=n>>8&255,o[16]=24;const t=new Uint8Array(e*n*3);let a=0;for(let l=n-1;l>=0;l--)for(let c=0;ct.onFilesSelected&&t.onFilesSelected(...a)),accept:".jpg,.jpeg,.png"},null,32),d("button",{onClick:e[1]||(e[1]=a=>t.setMode("draw"))},"涂鸦"),d("button",{onClick:e[2]||(e[2]=a=>t.setMode("view"))},"查看"),C(d("select",{"onUpdate:modelValue":e[3]||(e[3]=a=>o.channel=a),onChange:e[4]||(e[4]=(...a)=>t.updateChannelView&&t.updateChannelView(...a))},e[10]||(e[10]=[y('',5)]),544),[[U,o.channel]]),d("button",{onClick:e[5]||(e[5]=(...a)=>t.downloadTGA&&t.downloadTGA(...a)),disabled:!t.currentImage},"导出TGA",8,L),d("button",{onClick:e[6]||(e[6]=(...a)=>t.downloadAllTGA&&t.downloadAllTGA(...a)),disabled:o.images.length===0},"批量导出 ZIP",8,B)])]),o.images.length>0?(u(),h("div",V,[(u(!0),h(D,null,M(o.images,(a,i)=>(u(),h("div",{key:i,class:k(["thumbnail",{active:i===o.currentIndex}]),onClick:l=>t.loadImage(i)},[d("img",{src:a.preview,alt:"缩略图"},null,8,_)],10,S))),128))])):I("",!0),t.currentImage?(u(),h("div",E,[d("canvas",{ref:"canvas",onMousedown:e[7]||(e[7]=(...a)=>t.onMouseDown&&t.onMouseDown(...a)),onMouseup:e[8]||(e[8]=(...a)=>t.onMouseUp&&t.onMouseUp(...a)),onMousemove:e[9]||(e[9]=(...a)=>t.onMouseMove&&t.onMouseMove(...a))},null,544)])):I("",!0)])}const z=A(G,[["render",F],["__scopeId","data-v-d6fab920"]]);export{z as default};