是否有将图像转换为WEBP的快速方法?

时间:2019-02-05 15:12:13

标签: python-2.7 python-imaging-library image-conversion

在我的网站上,我现在将上传的图像转换为webp,因为它比其他格式小,因此用户加载页面的速度更快(也适用于移动用户)。但是转换中等图像需要花费一些时间。

<style name="BottomNavigation.ActiveItemTextAppearance" parent="TextAppearance.AppCompat">
    <item name="android:textStyle">bold</item>
    <item name="android:fontFamily">@font/whatever</item>
</style>

转换此后继图像需要2.8秒:

860 KB,1920 x 1080

我的内存是8gb ram,带有4核处理器(Intel I5),没有GPU。

我正在使用app:itemTextAppearanceActive="@style/BottomNavigation.ActiveItemTextAppearance"

是否有更快的方法将图像更快地转换为WEBB。 2,8秒似乎要等待很长时间。

enter image description here

1 个答案:

答案 0 :(得分:2)

如果您希望它们快速完成,请使用uses ..., IdHTTP, Dialogs; function PostExample: string; var lHTTP: TIdHTTP; lParamList: TStringList; begin lParamList := TStringList.Create; try lParamList.Add('id=1'); lHTTP := TIdHTTP.Create; try Result := lHTTP.Post('http://192.168.1.247:8001/test/test_api/', lParamList); finally lHTTP.Free; end; finally lParamList.Free; end; end; procedure http; begin ShowMessage(PostExample()); end; 。因此,拍摄1920x1080的图像并在终端中使用vips

vips

在我的MacBook Pro上花费0.3s,即比PIL实现的3s快10倍。

如果您希望快速完成很多工作,请使用 GNU Parallel vips webpsave autumn.jpg autumn.webp --Q 70 。因此,我制作了100张图片并将其全部转换为WEBP,如下所示:

vips

每100张图像需要4.9秒的时间,也就是说,它比PIL实现的3秒要快50倍。


您还可以使用parallel vips webpsave {} {#}.webp --Q 70 ::: *jpg 绑定-我对此不是专家,但是也可以用0.3s:

pyvips

因此,我最好的建议是采用上述两行代码,并使用多处理池或多线程方法来获取整个图像目录。看起来可能像这样:

#!/usr/bin/env python3

import pyvips

# VIPS
img = pyvips.Image.new_from_file("autumn.jpg", access='sequential')
img.write_to_file("autumn.webp")

在使用NVME磁盘的12核MacBook Pro上,需要3.3秒的时间将图像的100份副本转换为WEBP等效文件。