Gjallarhorn: Use 3-byte RGB for images, and improve timelapse text.

This commit is contained in:
Kenneth Endfinger
2022-01-10 01:56:40 -05:00
parent c1a07f1001
commit dcec7cab54
3 changed files with 6 additions and 4 deletions

View File

@ -59,6 +59,7 @@ class BlockChangeTimelapseCommand : CliktCommand("Block Change Timelapse", name
logger.info("Timelapse Slices: ${slices.size} slices") logger.info("Timelapse Slices: ${slices.size} slices")
val imagePadCount = slices.size.toString().length val imagePadCount = slices.size.toString().length
val pool = BlockMapRenderPool( val pool = BlockMapRenderPool(
changelog = changelog, changelog = changelog,
blockTrackMode = if (considerAirBlocks) BlockTrackMode.AirOnDelete else BlockTrackMode.RemoveOnDelete, blockTrackMode = if (considerAirBlocks) BlockTrackMode.AirOnDelete else BlockTrackMode.RemoveOnDelete,
@ -68,12 +69,13 @@ class BlockChangeTimelapseCommand : CliktCommand("Block Change Timelapse", name
) { slice, result -> ) { slice, result ->
val speed = slice.relative.toSeconds().toDouble() / timelapseMode.interval.toSeconds().toDouble() val speed = slice.relative.toSeconds().toDouble() / timelapseMode.interval.toSeconds().toDouble()
val graphics = result.createGraphics() val graphics = result.createGraphics()
val font = Font.decode("Arial Black").deriveFont(36.0f) val font = Font.decode("Arial Black").deriveFont(24.0f)
graphics.color = Color.black graphics.color = Color.black
graphics.font = font graphics.font = font
val context = graphics.fontRenderContext val context = graphics.fontRenderContext
val text = String.format("%s @ %.4f speed (1 frame = %s sec)", slice.to, speed, slice.relative.toSeconds())
val layout = val layout =
TextLayout("${slice.to} @ ${speed}x (1 frame = ${slice.relative.toSeconds()} seconds)", font, context) TextLayout(text, font, context)
layout.draw(graphics, 60f, 60f) layout.draw(graphics, 60f, 60f)
graphics.dispose() graphics.dispose()
val index = slices.indexOf(slice) + 1 val index = slices.indexOf(slice) + 1

View File

@ -25,7 +25,7 @@ abstract class BlockGridRenderer(val quadPixelSize: Int = defaultQuadPixelSize)
val widthInPixels = widthInBlocks.toInt() * quadPixelSize val widthInPixels = widthInBlocks.toInt() * quadPixelSize
val heightInPixels = heightInBlocks.toInt() * quadPixelSize val heightInPixels = heightInBlocks.toInt() * quadPixelSize
val bufferedImage = val bufferedImage =
BufferedImage(widthInPixels, heightInPixels, BufferedImage.TYPE_4BYTE_ABGR) BufferedImage(widthInPixels, heightInPixels, BufferedImage.TYPE_3BYTE_BGR)
val graphics = bufferedImage.createGraphics() val graphics = bufferedImage.createGraphics()
for (x in 0 until widthInBlocks) { for (x in 0 until widthInBlocks) {

View File

@ -66,7 +66,7 @@ class BlockMapRenderPool<T>(
} }
val end = System.currentTimeMillis() val end = System.currentTimeMillis()
val timeInMilliseconds = end - start val timeInMilliseconds = end - start
logger.info("Playback Completed for Slice $id in ${timeInMilliseconds}ms") logger.debug("Playback Completed for Slice $id in ${timeInMilliseconds}ms")
} }
interface RenderPoolDelegate<T> { interface RenderPoolDelegate<T> {