in robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt [272:288]
override fun executeInEDT(): Result<ByteArray> {
val componentContext =
componentContextCache[componentId] ?: throw IllegalStateException("Unknown component id $componentId")
return getResult(componentContext) {
val component = componentContext.component
val capturedImage = BufferedImage(
component.bounds.width,
component.bounds.height,
BufferedImage.TYPE_INT_ARGB
)
component.paint(capturedImage.graphics)
return@getResult ByteArrayOutputStream().use { b ->
ImageIO.write(capturedImage, "png", b)
b.toByteArray()
}
}
}