gradle png conver to webp

262 阅读1分钟
def generateWebp() {

    def path = new File(getProjectDir(), "/app/src/main/res/")
    files(path.listFiles(new FilenameFilter() {
        @Override
        boolean accept(File file, String pathname) {
            return file.isDirectory() && pathname.startsWith("mipmap-")
        }
    })).each {
        file ->
            fileTree(file).each { subFile ->
                def pathname = subFile.name
                if (!pathname.endsWith(".9.png") && (pathname.endsWith(".png") || pathname.endsWith(".jpeg"))) {
                    convertTowebp(subFile)
                }
            }
    }
}
def convertTowebp(File path) {
    def name = path.getName()
    def filePath = path.getAbsoluteFile()
    name = name.substring(0, name.indexOf("."))
    def webpName = "${path.getParent()}/${name}.webp"
    exec {
        commandLine 'cwebp', "${path.getAbsolutePath()}", '-q', '75', '-o', webpName
    }
    println("olds>>>>" + filePath + "\nwebp>>>>" + webpName)
    path.delete()


}