weblog@kentama

技術的なメモ置き場。主にJava。

Imgタグに表示する画像をByte配列で返す

  • Kotlin
  • Spring Boot 2.0.4
  • Thymeleaf

Spring Bootで、Imgタグに表示する画像をByte配列を返すには、ResponseEntityを使用する。

Controllerの実装

@GetMapping("image")
fun image(): ResponseEntity<ByteArray> {
    val bytes = .. // 画像のByte配列を取得
    return ResponseEntity.ok(bytes)
}

HTMLの実装

<img th:src="@{/image}">

Byte配列を直接返すことも可能。 その際、Controllerには @ResponseBody を付与する。 HTMLの実装は同じ。

@GetMapping("image")
@ResponseBody
fun image(): ByteArray {
    val bytes = // 画像のByte配列を取得
    return bytes
}

JSONからリストを作成する

KotlinでJacksonを使用して、JSONからリストを作成するのにハマったのでメモ。

import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.fasterxml.jackson.module.kotlin.readValue

class Foo {
    fun bar() {
        val mapper = jacksonObjectMapper()
        val libraries: List<Baz> = mapper.readValue("[{JSON}]")
    }
}