ca329e034cec5851393d59b17083239bccc96791
[meviz.git] / src / main / java / eu / svjatoslav / meviz / encoder / converters / Cwebp.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 public class Cwebp extends AbstractConverter {
14
15     @Override
16     public String getCommand(final File inputFile, final File targetFile,
17                              final EncodingOptions options, String targetFormat) {
18
19         String quality;
20
21         switch (options.getVideoBitrate()) {
22             case LOW:
23                 quality = " -q 10 ";
24                 break;
25             case MEDIUM:
26                 quality = " -q 50 ";
27                 break;
28             case HIGH:
29                 quality = " -q 80 ";
30                 break;
31             case COPY:
32             case LOSSLESS:
33             default:
34                 quality = " -lossless ";
35         }
36
37         return "cwebp \"" + inputFile.getAbsolutePath() + "\"" +  quality + " -o \""
38                 + targetFile.getAbsolutePath() + "\"";
39     }
40
41     @Override
42     public List<String> getSourceFileExtensions() {
43         return toList("tif", "tiff", "png", "jpg", "jpeg", "bmp", "gif");
44     }
45
46     @Override
47     public List<String> getTargetFileExtensions() {
48         return toList("webp");
49     }
50
51     @Override
52     public boolean isTerminalMandatory() {
53         return false;
54     }
55
56 }