Package: webptools
Webptools v0.0.9webptools is a Webp image conversion package for the python.Convert JPG,PNG.. images to webp image formatThis library uses precompiled executables of WebP(v1.1.0) for more info
visitWebPFor converting other image formats to webp, please read this
documentationcwebp EncoderFor converting webp image to other image format, please read this
documentationdwebp EncoderFor converting gif image to webp, please read this
documentationgif2webp ConverterFor creating animated webp image using webp images, please read this
documentationwebpmux MuxerHow to useInstallation$pipinstallwebptoolsFix Permission Issue (if not using external executables)fromwebptoolsimportgrant_permission# this will grant 755 permission to webp executablesgrant_permission()Using External executablesbin_path="libwebp_linux/bin/cwebp"cwebpConvert other image format to webpfromwebptoolsimportcwebp# pass input_image(.jpeg,.pnp .....) path ,# output_image(give path where to save and image file name with .webp file type extension)print(cwebp(input_image="python_logo.jpg",output_image="python_logo.webp",option="-q 80",logging="-v"))Convert base64 image to webp base64fromwebptoolsimportbase64str2webp_base64str# pass base64 image, image type, webp options,# for the conversion temp location need# use the default temp path for conversionprint(base64str2webp_base64str(base64str="",image_type="jpg",option="-q 80",logging="-v"))# use the custom temp path for conversionprint(base64str2webp_base64str(base64str="",image_type="jpg",option="-q 80",temp_path="./temp",logging="-v"))dwebpConvert webp image to other image formatfromwebptoolsimportdwebp# pass input_image(.webp image) path ,output_image(.jpeg,.pnp .....)print(dwebp(input_image="python_logo.webp",output_image="python_logo.jpg",option="-o",logging="-v"))gif2webpConvert gif image to webpfromwebptoolsimportgifwebp# pass input_image(.gif) path ,output_image(give path where to save and image file name with .webp file type extension)print(gifwebp(input_image="linux_logo.gif",output_image="linux_logo.webp",option="-q 80",logging="-v"))webpmuxAdd ICC profile,XMP metadata and EXIF metadatafromwebptoolsimportwebpmux_add# pass input_image(.webp image) path,output_image,set options(icc image profile,XMP metadata or EXIF metadata) and file.# for options use keywords as below# for ICC: icc# for XMP metadata: xmp# for EXIF metadata: exifprint(webpmux_add(input_image="in.webp",output_image="icc_container.webp",icc_profile="image_profile.icc",option="icc"))Extract ICC profile,XMP metadata and EXIF metadatafromwebptoolsimportwebpmux_extract# pass input_image(.webp image) path,output_image,set options(icc image profile,XMP metadata or EXIF metadata) and file.# for options use keywords as below# for ICC: icc# for XMP metadata: xmp# for EXIF metadata: exifprint(webpmux_extract(input_image="anim_container.webp",icc_profile="image_profile.icc",option="icc"))Strip ICC profile,XMP metadata and EXIF metadatafromwebptoolsimportwebpmux_strip# pass input_image(.webp image) path,output_image,set options(icc image profile,XMP metadata or EXIF metadata) and file.# for options use keywords as below# for ICC: icc# for XMP metadata: xmp# for EXIF metadata: exifprint(webpmux_strip(input_image="icc_container.webp",output_image="without_icc.webp",option="icc"))Create an animated WebP file from Webp imagesfromwebptoolsimportwebpmux_animate# pass input_images(.webp image) path with FRAME_OPTIONS, as array,ouput image will be animated .webp image# https://developers.google.com/speed/webp/docs/webpmux# FRAME_OPTIONS# -file_i +di[+xi+yi[+mi[bi]]]# e.g -frame one.webp +100 -frame two.webp +100+50+50 -frame three.webp +100+50+50+1+b# Where: file_i is the i'th frame (WebP format), xi,yi specify the image offset for this frame,# di is the pause duration before next frame, mi is the dispose method for this frame (0 for NONE or 1 for BACKGROUND)# and bi is the blending method for this frame (+b for BLEND or -b for NO_BLEND).# Argument bi can be omitted and will default to +b (BLEND). Also, mi can be omitted if bi is omitted and# will default to 0 (NONE). Finally,# if mi and bi are omitted then xi and yi can be omitted and will default to +0+0.# -loop n# e.g 10# Loop the frames n number of times. 0 indicates the frames should loop forever.# Valid range is 0 to 65535 [Default: 0 (infinite)].# -bgcolor A,R,G,B# e.g 255,255,255,255# Background color of the canvas. Where: A, R, G and B are integers in the range 0 to 255 specifying# the Alpha, Red, Green and Blue component values respectively [Default: 255,255,255,255].input=["./frames/tmp-0.webp +100","./frames/tmp-1.webp +100","./frames/tmp-2.webp +100"]print(webpmux_animate(input_images=input,output_image="anim_container.webp",loop="10",bgcolor="255,255,255,255"))Get a frame from an animated WebP filefromwebptoolsimportwebpmux_getframe# pass input_image(.webp image) path ,output_image and frame numberprint(webpmux_getframe(input_image="anim_container.webp",output_image="frame_2.webp",frame_number="2"))