imageView.setImageBitmap(bitmap) не ставит изображение

Рейтинг: 0Ответов: 1Опубликовано: 02.04.2023

Код

val socket = Socket("", 12345)

            val inputStream = socket.getInputStream()
            val outputStream = socket.getOutputStream()

            while (true) {
                outputStream.write(ByteArray(1))

                val buffer = ByteArray(300000)

                val image = inputStream.read(buffer)
                println(buffer)
                println(image)

                val imageView: ImageView = findViewById(R.id.imageView)

                val bitmap = BitmapFactory.decodeByteArray(buffer, 0, image)

                println(bitmap)

                runOnUiThread {
                    imageView.setImageBitmap(bitmap)
                }
            }

Отправляется вот так

import java.awt.Rectangle
import java.awt.Robot
import java.awt.Toolkit
import java.awt.image.BufferedImage
import java.io.ByteArrayOutputStream
import java.net.ServerSocket
import javax.imageio.ImageIO

fun screenshot(): ByteArray {
    val robot = Robot()

    val screenSize = Toolkit.getDefaultToolkit().screenSize
    val screenRect = Rectangle(screenSize)
    val image: BufferedImage = robot.createScreenCapture(screenRect)
    val image1 = ByteArrayOutputStream()

    ImageIO.write(image, "png", image1)

    return image1.toByteArray()
}

fun main() {
    println(screenshot().size)
    val serverSocket = ServerSocket(12345)

    val clientSocket = serverSocket.accept()

    val inputStream = clientSocket.getInputStream()
    val outputStream = clientSocket.getOutputStream()

    while (true) {
        val buffer = ByteArray(300000)
        val bytesRead = inputStream.read(buffer)
        if (bytesRead == -1) {
            break
        }

        outputStream.write(screenshot())
    }

    clientSocket.close()
    serverSocket.close()
}

И в консоль спамит ошибку D/skia: --- SkAndroidCodec::NewFromStream returned null

Ответы

▲ 0
ImageIO.write(bitmap or image, "jpg", new File("C:\\name.jpg"));

если не помогло, то скорее всего в буффер пустой.