将图像从python传递到android(Kotlin)

e0uiprwp  于 2022-12-30  发布在  Kotlin
关注(0)|答案(1)|浏览(205)

我已经创建了一个Android应用程序,它可以拍摄照片,然后将其发送到Python脚本进行一些处理和其他操作。但我卡住了,因为我不确定如何将图像发送回Android查看它...
我使用Chaquopy将图像传递给我的python脚本
下面是我把图片发送给python的方法:

val byteBuffer = image.planes[0].buffer
            val bytes = ByteArray(byteBuffer.capacity())
            val bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
            val byteOutputStream = ByteArrayOutputStream()
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteOutputStream)
            val image = byteOutputStream.toByteArray()
            val py = Python.getInstance()
            val pyObject = py.getModule("run")
            val result = pyObject.callAttr("main", image)

我需要图像在Android中可见

9udxz4iz

9udxz4iz1#

Python函数应该返回一个bytes对象,该对象包含PNG或JPEG格式的图像文件。然后,可以在ImageView中显示该对象,如下所示:

val resultBytes = result.toJava(ByteArray::class.java)
val resultBitmap = BitmapFactory.decodeByteArray(resultBytes, 0, resultBytes.size)
imageView.setImageBitmap(resultBitmap)

chaquopy-matplotlib演示中有一个完整的例子。

相关问题