转换webp格式图片,java.io.IOException: Cannot run program "dwebp": error=2, No such file or directory

一:webp格式

WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间。
Facebook Ebay等知名网站已经开始测试并使用WebP格式。
但WebP是一种有损压缩。相较编码JPEG文件,编码同样质量的WebP文件需要占用更多的计算资源。
但谷歌表示,这种格式的主要优势在于高效率。他们发现,“在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。
谷歌浏览器已经支持webp格式,Opera在版本号Opera11.10后也增加了支持,
然而火狐和ie暂时还不支持webp格式,可以采用flash插件来显示webp,当然这样会耗费一些性能。

二:转换webp格式图片

http://downloads.webmproject.org/releases/webp/index.html

windows环境下载
libwebp-0.4.2-windows-x64

linux环境下载
libwebp-0.4.4-rc2-linux-x86-64​

三:linux设置webp环境变量

编辑 /etc/profile
export PATH=/mnt/online/libwebp/bin:$PATH​

四:转换程序

public class WebpUtil {
    private static Logger logger = Logger.getLogger(WebpUtil.class);
    private static Gson g = new Gson();
    /** * 转换webp格式的图片<br> * convertWebp <br> * @param originPath webp图片原始地址 * @param filePath 转换后的图片地址 */
    public static void convertWebp(String originPath, String filePath){
        EPlatform ePlatform = OSinfo.getOSname();
        String dwebp = "dwebp";
        switch (ePlatform) {
        case Windows:
            dwebp = GetProperties.getServerConfigValue("dwebpPath");
            break;
        default:
            break;
        }
        List<String> commands = new ArrayList<String>();
        commands.add(dwebp);
        commands.add(originPath);
        commands.add("-o");
        commands.add(filePath);
        logger.error("command:"+g.toJson(commands));
        try {
            ProcessBuilder builder = new ProcessBuilder(commands);
            builder.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        convertWebp("F:/1.webp","F:/1.png");
    }

}

5:注意

注意:如果程序没有读写文件的权限的话,会报异常
java.io.IOException: Cannot run program “dwebp”: error=2, No such file or directory

可以执行 chmod -R 777 文件夹,然后就可以正常转化webp文件了。

你可能感兴趣的:(压缩,图片,谷歌,webP)