Skip to content

Commit fea5e69

Browse files
committed
feat: added Image.toByteArray() and toBase64()
1 parent 522d2ec commit fea5e69

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

fxgl-core/src/main/kotlin/com/almasb/fxgl/texture/Images.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@ import javafx.scene.effect.BlendMode
1717
import javafx.scene.image.*
1818
import javafx.scene.paint.Color
1919
import javafx.scene.shape.Rectangle
20+
import java.io.ByteArrayOutputStream
2021
import java.nio.file.Files
2122
import java.nio.file.Path
23+
import java.util.Base64
2224
import java.util.concurrent.Callable
2325
import javax.imageio.ImageIO
2426
import kotlin.math.abs
@@ -608,6 +610,20 @@ fun Image.subImage(area: Rectangle2D): Image {
608610
return newImage
609611
}
610612

613+
fun Image.toByteArray(): ByteArray {
614+
val awtImage = toBufferedImage(this)
615+
616+
val baos = ByteArrayOutputStream()
617+
618+
ImageIO.write(awtImage, "png", baos)
619+
620+
return baos.toByteArray()
621+
}
622+
623+
fun Image.toBase64(): String {
624+
return Base64.getEncoder().encodeToString(this.toByteArray())
625+
}
626+
611627
/**
612628
* @return the sum of rgb values, which is in range [0..3]
613629
*/

fxgl-core/src/test/kotlin/com/almasb/fxgl/texture/ImagesTest.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,15 @@ class ImagesTest {
105105

106106
assertThat(result, `is`(0.0))
107107
}
108+
109+
@Test
110+
fun `Convert to base64`() {
111+
val img1 = ColoredTexture(100, 100, Color.WHITE).image
112+
113+
val s = img1.toBase64()
114+
115+
assertThat(s, `is`(
116+
"iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAA/ElEQVR4Xu3RoQEAMAyAsP7/dOv3wBCJxDJLyryBvwyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTGkBhDYgyJMSTmAPgrrNZaawxDAAAAAElFTkSuQmCC"
117+
))
118+
}
108119
}

0 commit comments

Comments
 (0)