alexzhirkevich / qrose

Styled QR & Barcode generation library for Compose Multiplatform and Jetpack Compose
MIT License
234 stars 4 forks source link

Logo background #9

Open MohammadRezaei92 opened 1 week ago

MohammadRezaei92 commented 1 week ago

Please add logo background option

alexzhirkevich commented 1 week ago

Logo is a painter. You can add background to your image or wrap logo painter in other painter

class WrapperPainter(
    private val painter: Painter,
    private val background : Color,
) : Painter() {
    override val intrinsicSize: Size
        get() = painter.intrinsicSize

    override fun DrawScope.onDraw() {
        drawRect(background)
        painter.run {
            draw(size)
        }
    }
}
MohammadRezaei92 commented 1 week ago

Logo is a painter. You can add background to your image or wrap logo painter in other painter

class WrapperPainter(
    private val painter: Painter,
    private val background : Color,
) : Painter() {
    override val intrinsicSize: Size
        get() = painter.intrinsicSize

    override fun DrawScope.onDraw() {
        drawRect(background)
        painter.run {
            draw(size)
        }
    }
}

This solution just add the background to logo painter. If we have some paddings for logo, the background is different there.