Skip to content

Instantly share code, notes, and snippets.

@yuuahp
Created November 9, 2023 14:42
Show Gist options
  • Select an option

  • Save yuuahp/3ec1549b591e7fa8ce50255f601e59d9 to your computer and use it in GitHub Desktop.

Select an option

Save yuuahp/3ec1549b591e7fa8ce50255f601e59d9 to your computer and use it in GitHub Desktop.
// kotlin ./webp-to-png.main.kts webp-folder
@file:DependsOn("com.sksamuel.scrimage:scrimage-core:4.1.1")
@file:DependsOn("com.sksamuel.scrimage:scrimage-webp:4.1.1")
import com.sksamuel.scrimage.ImmutableImage
import com.sksamuel.scrimage.nio.PngWriter
import java.io.File
import kotlin.system.exitProcess
val folder = File(args[0])
if (!folder.exists() || !folder.isDirectory) {
println("Invalid folder: $folder")
exitProcess(0)
}
val files: Array<File> = folder.listFiles() ?: emptyArray()
files.filter { it.extension == "webp" }.forEach {
val image = ImmutableImage.loader().fromFile(it)
val pngFileName = "${it.absolutePath.removeSuffix(".webp")}.png"
image.output(PngWriter.NoCompression, pngFileName)
it.copyTo(folder.resolve("webp-backups/${it.name}"))
it.delete()
println("${it.name} -> $pngFileName")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment