renderedimageprovider.scala

来自「resetful样式的ws样例,一种面向资源的webservices服务」· SCALA 代码 · 共 51 行

SCALA
51
字号
import java.awt.image._import java.io._import javax.imageio._import java.lang.annotation.Annotationimport java.lang.reflect.Typeimport javax.ws.rs._import javax.ws.rs.core._import javax.ws.rs.ext._package com.sun.jersey.samples.mandel {@Providerclass RenderedImageProvider extends MessageBodyWriter[RenderedImage] {    def isWriteable(c: Class[_], gt: Type, annotations: Array[Annotation]) : boolean = {        classOf[RenderedImage].isAssignableFrom(c)    }    def writeTo(t: RenderedImage,            c: Class[_],            gt: Type,            annotations: Array[Annotation],            mediaType: MediaType,            httpHeaders: MultivaluedMap[String, Object],            entityStream: OutputStream) : unit = {        val formatName = RenderedImageProvider.formatName(mediaType)        if (formatName == null) throw new IOException("Media type " +             mediaType + "not supported")        ImageIO.write(t, formatName, entityStream)    }    def getSize(t: RenderedImage) : long = {        -1    }}object RenderedImageProvider {    def formatName(t: MediaType) : String = {        formatName(t.toString())    }    def formatName(t: String) : String = {        val i = ImageIO.getImageWritersByMIMEType(t)        if (!i.hasNext()) return null        i.next.asInstanceOf[ImageWriter].getOriginatingProvider.getFormatNames()(0)    }    def isSupported(t: MediaType) = ImageIO.getImageWritersByMIMEType(t.toString()).hasNext()}} // package

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?