From 8f9e9c9d9ed6a9f856bb1127d900ceb50ed94be5 Mon Sep 17 00:00:00 2001 From: Edwin Jakobs Date: Mon, 8 Jun 2020 21:56:36 +0200 Subject: [PATCH] Add demo / tester for 16 bit png loading --- demo-data/images/16-bit.png | Bin 0 -> 35893 bytes openrndr-demos/src/demo/kotlin/Demo16BitPng.kt | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 demo-data/images/16-bit.png create mode 100644 openrndr-demos/src/demo/kotlin/Demo16BitPng.kt diff --git a/demo-data/images/16-bit.png b/demo-data/images/16-bit.png new file mode 100644 index 0000000000000000000000000000000000000000..d93e236a7ca1321e8527937fe405334de3b2cfb1 GIT binary patch literal 35893 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 FngCn!&K&>% literal 0 HcmV?d00001 diff --git a/openrndr-demos/src/demo/kotlin/Demo16BitPng.kt b/openrndr-demos/src/demo/kotlin/Demo16BitPng.kt new file mode 100644 index 00000000..640080f6 --- /dev/null +++ b/openrndr-demos/src/demo/kotlin/Demo16BitPng.kt @@ -0,0 +1,16 @@ + +import org.openrndr.application +import org.openrndr.draw.loadImage + +fun main() { + application { + program { + val image16 = loadImage("demo-data/images/16-bit.png") + val image8 = loadImage("demo-data/images/image-001.png") + extend { + drawer.image(image16) + drawer.image(image8, 320.0, 0.0) + } + } + } +} \ No newline at end of file