Android 创建图像文件的最快方法是什么

Android 创建图像文件的最快方法是什么,android,image,performance,Android,Image,Performance,我有一个医疗设备,它发送像素值,以便打印为图像(一帧接一帧)。 我需要获取像素并从中生成屏幕上的图像。目前,使用我编写的代码,我成功地接收到800x600图像大小的2fps 在屏幕上绘制图像的最快方法是什么?并且不断地这样做 Bitmap mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); Canvas c = new Canvas(mBitmap); Paint paint = new Paint();

我有一个医疗设备,它发送像素值,以便打印为图像(一帧接一帧)。 我需要获取像素并从中生成屏幕上的图像。目前,使用我编写的代码,我成功地接收到800x600图像大小的2fps

在屏幕上绘制图像的最快方法是什么?并且不断地这样做

 Bitmap mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
 Canvas c = new Canvas(mBitmap);
 Paint paint = new Paint();
 int[] colorMatrix = new int[width * height];
 for (int i = 0; i < imageXY.length; i++) {
        int indexValue = Integer.parseInt(strValueIndex[i]);
        int pixelValue = Integer.parseInt(imageValue[indexValue - 1]);
        int pixelIndex = GetXY(imageXY[i]);
        //int pixelIndex = Integer.parseInt(imageXY[i].split(",")[2]);
        colorMatrix[pixelIndex] = pixelValue;
    }

    c.drawBitmap(colorMatrix, 0, width, 0, 0, width, height, false, paint);
    myImage.setImageBitmap(mBitmap);
bitmbit mBitmap=Bitmap.createBitmap(宽度、高度、Bitmap.Config.RGB_565);
画布c=新画布(mBitmap);
油漆=新油漆();
int[]colorMatrix=新int[宽度*高度];
对于(int i=0;i

但是,每帧大约需要500毫秒,这是在Android中启动OpenGL最容易的地方:

我也会考虑在这个过程中使用多个内核;尽管基于GPU的计算可以提供更高的单核速度,但通过使用多核和并行处理,这样一个相当“简单”的任务将大大加快速度,而且应该不会太难实现。下面介绍Android设备上的并行处理


使用Canvas,您会受到软件渲染速度的限制。您应该尝试利用图形卡进行硬件加速,您可以将像素数据流传输到GPU。这会导致渲染速度大大加快,但如果您不熟悉OpenGL,则会增加复杂性。为什么strValueIndex()和imageValue()以及GetXY()都会这样做?如果没有这些信息的来源,很难知道你的循环到底在做什么。我怀疑整数的解析是一个很大的因素。分析你的应用程序将告诉你它是如何花费时间的。。。此外,如果您还没有这样做,您应该尝试在单独的线程中渲染和获取数据,以解耦渲染循环中的处理开销。这可以通过生产者/消费者模式完成。strValueIndex和imageValue是数组的函数,GetXY()函数执行非常小的计算,不会影响性能。我将使用生产者/消费者模式使用硬编码测试am。