Files
orx/orx-runway/src/demo/kotlin/DemoBiGAN02.kt
2020-04-07 16:24:40 +02:00

51 lines
1.6 KiB
Kotlin

import org.openrndr.application
import org.openrndr.color.ColorRGBa
import org.openrndr.draw.*
import org.openrndr.extra.runway.*
import org.openrndr.resourceUrl
/**
* This demonstrates an image feedback effect. It starts from a single image.
* The BigBiGAN generates a new image from the input, this program feeds the
* generated image back into the model (with an additional distortion).
* This example requires a `runway/BigBiGAN` model to be active in Runway.
*/
fun main() = application {
configure {
width = 512
height = 512
}
program {
val rt = renderTarget(256, 256) {
colorBuffer()
}
val startImage = loadImage(resourceUrl("/data/images/portrait.jpg"))
drawer.isolatedWithTarget(rt) {
drawer.ortho(rt)
drawer.background(ColorRGBa.BLACK)
drawer.image(startImage, (rt.width - startImage.width)/2.0, (rt.height - startImage.height) / 2.0)
}
extend {
val result: BigBiGANResult =
runwayQuery("http://localhost:8000/query", BigBiGANQuery(rt.colorBuffer(0).toData()))
val image = ColorBuffer.fromData(result.outputImage)
drawer.image(image, 0.0, 0.0, 512.0, 512.0)
drawer.isolatedWithTarget(rt) {
drawer.ortho(rt)
drawer.translate(image.width/2.0, image.height/2.0)
drawer.rotate(10.0)
drawer.translate(-image.width/2.0, -image.height/2.0)
drawer.drawStyle.colorMatrix = tint(ColorRGBa.WHITE.opacify(0.5))
drawer.image(image)
}
image.destroy()
}
}
}