4
Clojureで単純なBufferedImageを生成してpngファイルとして保存するにはどうすればよいですか?clojureで.png-imageを生成して保存する
Clojureで単純なBufferedImageを生成してpngファイルとして保存するにはどうすればよいですか?clojureで.png-imageを生成して保存する
私は簡単にこのように、このように何かをやった:
(def bi (BufferedImage. 16 16 BufferedImage/TYPE_INT_ARGB))
(def g (.createGraphics bi))
;; use g
(.drawLine g 0 0 10 10)
(.drawLine g 0 15 15 0)
;; save:
(ImageIO/write bi "png" (File. "test.png"))
BufferedImage
はGraphics2D
コンテキストg
を提供しており、私たちは、保存を行うためにImageIOを使用しています。鉱山のプロジェクトから
例:
(ns minemap.graphics
(require minemap.core)
(import java.io.File)
(import java.awt.Color)
(import java.awt.image.BufferedImage)
(import javax.imageio.ImageIO))
(defn draw-png
"Take width, height, and the map of mines. Save to a file.
Supposed to take a generate-random-map{,-perc} mapping."
[width height minemap file]
(let [block 5 ;block size
bi (BufferedImage. (* block width) (* block height) BufferedImage/TYPE_INT_ARGB)
g (.createGraphics bi)]
(do
(.setColor g (*colors* :background))
(.fillRect g 0 0 (* block width) (* block height))
(doseq [[[x y] high] minemap]
(.setColor g (*colors* high))
(.fillRect g (* block x) (* block y) block block))
(ImageIO/write bi "png" (File. file)))))
ありがとうございました!非常にエレガント! – claj
あなたは[rinzelight](https://github.com/Serabe/rinzelight)を見て、私はClojureのあちこちに書いている画像ライブラリを取ることができます。 – Serabe
ああ、素晴らしい!あなたは私の仕事の時間を節約しました! – claj
それを聞いてうれしい!私がそれに加えることができるものがあれば教えてください。 – Serabe