所以我试图将图像转换为字符串/十六进制数组(包含像素颜色值)并通过蓝牙将其发送到我的arduino控制器。我已将图像转换为十六进制数组但无法通过蓝牙发送。
以下是图像到十六进制转换块:
public void getPixelValue (View v){
Bitmap bm = ((BitmapDrawable) imgView.getDrawable()).getBitmap();
boolean hasDrawable = (bm != null);
if(hasDrawable)
{
picw = bm.getWidth();
pich = bm.getHeight();
int[] pix = new int[picw * pich];
bm.getPixels(pix, 0, picw, 0, 0, picw, pich);
int R, G, B,Y;
colorArray = new String[picw][pich];
for (int i = 0; i < picw; i++)
{
for (int j = 0; j < pich; j++)
{
int pixel = bm.getPixel(i,j);
R = Color.red(pixel);
G = Color.green(pixel);
B = Color.blue(pixel);
StringBuilder builder = new StringBuilder();
builder.append("0x");
builder.append(Integer.toHexString(R));
builder.append(Integer.toHexString(G));
builder.append(Integer.toHexString(B));
colorArray[i][j] = builder.toString();
}
}
}
else
{
Toast.makeText(this, "No Image loaded", Toast.LENGTH_SHORT).show();
}
}
请指导如何通过蓝牙发送它,以便我在arduino(nano)端接收阵列。
这是我用来发送简单文本/字符的方法。我在文本框中键入字符串,我想在串行监视器(arduino端)上阅读。
public void sendText (View v) {
try
{
String msg = txtBox.getText().toString();
msg += "\n";
mmOutputStream.write(msg.getBytes());
Toast.makeText(this, "Data Sent", Toast.LENGTH_LONG).show();
}
catch (IOException ex) { }
}
这个块工作正常,所以我知道蓝牙配对和连接都没问题。接下来,我想发送我从'getpixelvalue'函数获得的字符串/十六进制数组。