33 lines
805 B
Kotlin
33 lines
805 B
Kotlin
package org.openrndr.boofcv.binding
|
|
|
|
import boofcv.struct.flow.ImageFlow
|
|
import org.openrndr.draw.ColorBuffer
|
|
import org.openrndr.draw.ColorFormat
|
|
import org.openrndr.draw.ColorType
|
|
import org.openrndr.draw.colorBuffer
|
|
import java.nio.Buffer
|
|
import java.nio.ByteBuffer
|
|
import java.nio.ByteOrder
|
|
|
|
fun ImageFlow.toColorBuffer(): ColorBuffer {
|
|
|
|
val cb = colorBuffer(
|
|
width, height, format = ColorFormat.RG,
|
|
type = ColorType.FLOAT32
|
|
)
|
|
|
|
val bb = ByteBuffer.allocateDirect(width * height * 8)
|
|
bb.order(ByteOrder.nativeOrder())
|
|
for (y in 0 until height) {
|
|
for (x in 0 until width) {
|
|
val f = get(x, y)
|
|
bb.putFloat(f.x)
|
|
bb.putFloat(f.y)
|
|
}
|
|
}
|
|
|
|
(bb as Buffer).rewind()
|
|
cb.write(bb)
|
|
cb.flipV = true
|
|
return cb
|
|
} |