override fun writeToPngRaw()

in plot-api/src/commonMain/kotlin/org/jetbrains/letsPlot/util/pngj/ImageLineByte.kt [152:184]


    override fun writeToPngRaw(raw: ByteArray) {
        raw[0] = filterType.value.toByte()
        if (imgInfo.bitDepth == 8) {
            arraycopy(scanline, 0, raw, 1, size)
        } else if (imgInfo.bitDepth == 16) {
            var i = 0
            var s = 1
            while (i < size) {
                raw[s++] = scanline[i]
                raw[s++] = scanline2!![i]
                i++
            }
        } else { // packed formats
            var shi: Int
            val bd: Int
            var v: Int
            bd = imgInfo.bitDepth
            shi = 8 - bd
            v = 0
            var i = 0
            var r = 1
            while (i < size) {
                v = v or (scanline[i].toInt() shl shi)
                shi -= bd
                if (shi < 0 || i == size - 1) {
                    raw[r++] = v.toByte()
                    shi = 8 - bd
                    v = 0
                }
                i++
            }
        }
    }