How to convert my photos to webp format of Google

2019-05-11 06:18发布

I want to convert my photos from jpg, gif and png to WebP format! When I'm trying to use CMD for using cwebp command, I got this error message :

'cwebp' is not recognized as an internal or external command, operable program or batch file.

What should do I do ?

I've downloaded all the files needed such as libwebp-0.4.0-windows-x86.zip and WebpCodecSetup.exe (from this url : "https://code.google.com/p/webp/downloads/list").

even I've installed Visual Studio to use its command prompt, but didn't work !!!

Is there anyone can help me ??

One more questation:

Is anyone know any tool to reduce image size without lossing its quality ?

2条回答
干净又极端
2楼-- · 2019-05-11 06:37

After you download cwebp binaries (.exe) from Google you can run it with PowerShell.

Copy and paste the code below in PowerShell and press enter to run it.

Read the comments in the snippet for more information.

# on Windows Explorer, shift + right-click a directory and copy its path
# paste the path in $dir
$dir = "path/to/directory"

# get all files in the directory
$images = Get-ChildItem $dir

# loop through every images
foreach ($img in $images) {
  # output file will be written in the same directory 
  # but with .webp extension instead of old extension
  $outputName = $img.DirectoryName + "\" + $img.BaseName + ".webp"

  # copy-paste the path to cwebp program 
  # and set its input and output parameters
  # more options https://developers.google.com/speed/webp/docs/cwebp
  C:\webp-converter\libwebp-0.6.1-windows-x64\bin\cwebp.exe $img.FullName -o $outputName
}
查看更多
地球回转人心会变
3楼-- · 2019-05-11 06:59

After you download cwebp binaries (.exe) from Google you can run it with PowerShell.

Then add the bin directory to where you extracted the cwebp lib to your Windows PATH. This is something like this C:\downloads\libs\LibWebP\bin for example. If you don't know how to do this search for "how to add something to windows PATH". Here is an example link.

If you need to go through each sub directory from the current directory you can do this below instead of pasting the path to the current directory in the script and doing so for each folder in the directory.

# get current directory
$initpath = Get-Location
# get all directories
foreach($path in Get-Childitem) {
    if ($path.Attributes -eq "Directory") {
        set-location $path.FullName
          # get all files in the directory
          $images = Get-ChildItem $dir

          # loop through every image
          foreach ($img in $images) {
            # output file will be written in the same directory
            # but with .webp extension instead of old extension
            $outputName = $img.DirectoryName + "\" + $img.BaseName + ".webp"

            # since you have the cwebp bin folder in PATH just type the command
            # more options https://developers.google.com/speed/webp/docs/cwebp
            cwebp -q 75 -m 6 -af -f 50 -sharpness 0 -mt -v -progress $img.FullName -o $outputName
          }
    }
}
set-location $initpath
查看更多
登录 后发表回答