imageView.setImageBitmap(bitmap) не ставит изображение
Код
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
Источник: Stack Overflow на русском