All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sksamuel.scrimage.nio.TwelveMonkeysWriter.scala Maven / Gradle / Ivy

There is a newer version: 3.0.0-alpha4
Show newest version
package com.sksamuel.scrimage.nio

import java.io.OutputStream
import javax.imageio.{IIOImage, ImageIO}

import com.sksamuel.scrimage.Image
import org.apache.commons.io.IOUtils

trait TwelveMonkeysWriter extends ImageWriter {

  def format: String

  override def write(image: Image, out: OutputStream): Unit = {

    import scala.collection.JavaConverters._

    val writers = ImageIO.getImageWritersByFormatName(format).asScala.toList
    writers match {
      case writer :: tail =>
        val ios = ImageIO.createImageOutputStream(out)
        val params = writer.getDefaultWriteParam()
        writer.setOutput(ios)
        writer.write(null, new IIOImage(image.awt, null, null), params)
        ios.close()
        writer.dispose()
        IOUtils.closeQuietly(out)
      case _ => throw new UnsupportedOperationException(s"$format format not registered")
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy