您的位置:首页 > 编程语言 > Java开发

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

2015-12-09 15:03 633 查看

一: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