Support for decoding webp images
[meviz.git] / src / main / java / eu / svjatoslav / meviz / encoder / converters / WebpEncoder.java
1 /*
2  * Meviz - Various tools collection to work with multimedia. Author: Svjatoslav Agejenko.
3  * This project is released under Creative Commons Zero (CC0) license.
4  */
5
6 package eu.svjatoslav.meviz.encoder.converters;
7
8 import eu.svjatoslav.meviz.encoder.EncodingOptions;
9
10 import java.io.File;
11 import java.util.List;
12
13 /**
14  * webp encoder.
15  */
16 public class WebpEncoder extends AbstractConverter {
17
18     @Override
19     public String getCommand(final File inputFile, final File targetFile,
20                              final EncodingOptions options, String targetFormat) {
21
22         String quality;
23
24         switch (options.getVideoBitrate()) {
25             case LOW:
26                 quality = " -q 10 ";
27                 break;
28             case MEDIUM:
29                 quality = " -q 50 ";
30                 break;
31             case HIGH:
32                 quality = " -q 80 ";
33                 break;
34             case COPY:
35             case LOSSLESS:
36             default:
37                 quality = " -lossless ";
38         }
39
40         return "cwebp \"" + inputFile.getAbsolutePath() + "\"" +  quality + " -o \""
41                 + targetFile.getAbsolutePath() + "\"";
42     }
43
44     @Override
45     public List<String> getSourceFileExtensions() {
46         return toList("tif", "tiff", "png", "jpg", "jpeg", "bmp", "gif");
47     }
48
49     @Override
50     public List<String> getTargetFileExtensions() {
51         return toList("webp");
52     }
53
54     @Override
55     public boolean isTerminalMandatory() {
56         return false;
57     }
58
59 }