skyfish-qc / pngtiny

一个js压缩图片的工具。功能用C编写,利用了libimagequant和libpng库,读取png图片进行压缩,然后导出wasm在页面运行,从而使得可以直接在页面压缩图片,不需要上传到服务器处理。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#js版png压缩工具

  • 2021.10.14 添加jpg图片压缩
  • 2021.10.19 添加GIF图片压缩
  • 2022.01.06 添加demo地址

##新加函数代码

unsigned char *
Gif_writeMem(Gif_Stream *gfs, const Gif_CompressInfo* gcinfo, unsigned long * outsize) {
    Gif_Writer grr;
    int ok = gif_writer_init(&grr, NULL, gcinfo)&& write_gif(gfs, &grr);
    unsigned char* buf=NULL;
    if(ok) {
        buf = malloc(grr.pos);
        memcpy(buf,grr.v, grr.pos);
        memcpy(outsize,&grr.pos,sizeof(unsigned long));
    }
    gif_writer_cleanup(&grr);
    return buf;
}

使用

部署web文件夹到服务器访问即可(需要在支持webassembly的浏览器访问,比如Chrome,edge)

可以访问 demo

说明

About

一个js压缩图片的工具。功能用C编写,利用了libimagequant和libpng库,读取png图片进行压缩,然后导出wasm在页面运行,从而使得可以直接在页面压缩图片,不需要上传到服务器处理。

License:MIT License


Languages

Language:C 93.1%Language:JavaScript 4.9%Language:HTML 0.8%Language:CMake 0.6%Language:CSS 0.5%Language:Batchfile 0.1%