New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
格式转换显示个进度会好点 #21
Comments
@longyc627 主要是压缩过程是用js来写,效率太低,近期在编写新版本,可以优化这个问题 |
@jeakey 新版本计划使用什么编写,还是nwjs吗,或者是上Electron |
@dreampiggy 使用Electron+vue,新版本主要聚焦在动态图片(PNGs、APNG、GIF、WEBP)之间的相互转换和APNG的压缩,不涉及静态图片,预计9月中提交上github,到时候希望 @dreampiggy 加入一起优化,把这个工具做的更好。 |
@jeakey 好!很早以前就想吐槽nwjs了。我自己这边实际也是动态图转换使用的比较多。静态WebP转换之类其实各种切图工具都有。到时候可以提交了我来看看,这次APNG转动态WebP的功能也是自己写的(虽说感谢了apng2webp……但实际那个项目也是我在贡献代码- -)。 |
另外,当前版本的PNG转APNG过程,已经把PNGs转APNG的使用JS的canvas画图的方式干掉了。现在是使用PNGs->pngout/pngquant->Opt PNGs->apngasm->APNG这样处理的。之前还有一步使用到了apngopt这个APNG压缩工具,但是实际查看C的源码,里面就是直接抄的apngasm的处理方式,压缩效率持平……所以就干掉最后一步了。 |
@dreampiggy 当时写iSparta的时候,Electron还不成熟...APNG2WebP的功能很赞,但是现在遇到个问题,WebP2APNG不太好弄,webpmux只会解出非复用的地方,导致每一帧尺寸不一样,无法合成APNG。不过WebP2APNG的场景貌似不多,考虑暂时不去支持。 |
@jeakey 动态WebP转APNG的话,现在暂时没有趁手的直接工具。webpmux就是输出帧,不带绘图,因此非要搞的话,就得像之前那种JS方式一样,搞个canvas,根据每帧disposal method画图,清除canvas,然后再输出到PNG,感觉比较麻烦。我这边用WebP其实主要是移动端在用,APNG对Android太不友好,所以一般都没有把动态WebP往回APNG转换的需要,这个确实可以暂不支持。 |
关于APNG的压缩,之前有试过你说的那种方式,pngquant会修改图片信息,造成原来可复用前一帧的图片信息变为不可复用了,并没有很好的利用动态图片特性。所以中间有用js处理过,不过确实效率比较低。 |
@jeakey 怪不得,我测试使用有损压缩(调用pngquant)的情况下,除非质量降低到30%,否则输出的APNG大小,和新版无损压缩(直接用的pngout)差距不大……好吧,是我疏忽了。 |
@longyc627 @jeakey Fixed in ver 2.1.2 进度显示不了,其实原因是因为之前APNG转换器开满了CPU,导致JS eventLoop被hang,UI没有机会渲染。修复后两种方式都回归了串行的方法😅 最后在这里不得不吐槽一下,apngopt v1.4新版的命令行程序,Linux和macOS下根本就不能用,它里面竟然解析了"/"来当作参数分隔符(同时还保留了"-"标准参数分隔符),假如我这样写: apngopt ~/Documents/a.png b.png 就会被神一般的认为传入一个 |
@jeakey Any update about that new version iSparta ? It's almost October now... I'm so excited about that new version product. ❤️ |
@dreampiggy We took some time to solve the problem in Windows.We will submit the new version today or tomorrow. |
@jeakey Awesome. I will check the new version later! |
无进度百分比显示,等待太漫长
The text was updated successfully, but these errors were encountered: