STDSuperman / super-image-cropper

For cropping images such as GIF / PNG / JPG / JPEG.
MIT License
19 stars 5 forks source link

裁剪后gif图片会有白色闪烁 #19

Open undeadfrost opened 2 months ago

undeadfrost commented 2 months ago

原图 cat 裁剪后图片 50149858-6446-11ef-82b8-b6ad433f3417 demo可复现

STDSuperman commented 2 months ago

加个这个参数即可,看起来是透明帧的问题 image

STDSuperman commented 2 months ago

初步确认是合成帧的时候对于透明度的处理有点问题,我研究下

undeadfrost commented 1 month ago

我想找到问题了,好像是配合cropperjs解析方面有点小问题,我来处理下

好 麻烦大佬

STDSuperman commented 1 month ago

研究了一圈,似乎 gif.js 合成 gif 图对透明像素点的支持并不太好,所以对于一些特定颜色的像素点会出现处理异常的情况,估计暂时有点搞不定

undeadfrost commented 1 month ago

我用 gif-frames 拆分图片,用 gif.js 合成简单试了下,似乎可以的 https://stackblitz.com/edit/vitejs-vite-2cwbxq?file=src%2FApp.vue,index.html,public%2Fgif.worker.js,src%2Fmain.js&terminal=dev

STDSuperman commented 1 month ago

我用 gif-frames 拆分图片,用 gif.js 合成简单试了下,似乎可以的 https://stackblitz.com/edit/vitejs-vite-2cwbxq?file=src%2FApp.vue,index.html,public%2Fgif.worker.js,src%2Fmain.js&terminal=dev

你这种写法会导致透明底色丢失 image

undeadfrost commented 1 month ago

确实,看来这里不好处理

jinjiebang commented 1 month ago

我也遇到了这个问题,然后发现可以处理这个问题的前端库:image-in-browser,建议集成到项目中。

STDSuperman commented 1 month ago

我也遇到了这个问题,然后发现可以处理这个问题的前端库:image-in-browser,建议集成到项目中。

我这两天看看,我之前也找过一些解决方案,似乎没有比较靠谱的

STDSuperman commented 1 month ago

image-in-browser

我试了下他这个库,似乎裁剪出来的 gif 也是有问题的,透明像素点的识别也有问题,感觉是gif本身的格式的问题,我后面可能考虑尝试输出为别的动图格式之类的 image