私のアプリケーションは、YUVのカメラからプレビューフレームを取得し、それをサーバーに送信します。私はそれを変更しようとしているので、画像の一部(作物)をサーバーに送るだけです。しかし、私はバイト配列をループして、ビットマップクラスを作成してそのように切り取るのではなく、切り取ったイメージを直接サーバーに送りたいと思っています。YUVイメージの一部をサーバーに送る方法は?
私の目標はできるだけ効率的にすることです。
誰かがYUV画像を切り取るための擬似コード(またはより良い実際のコード)を持っていますか?
私はこのような何か仕事をするコードたい:
OutputStream out = clientSocket.getOutputStream();
byte[] preview = getCameraPreview();
//Crop half of the image
int x = (int)(getX()/2);
int y = (int)(getY()/2);
//Send the width, height, and image size to the server
out.write(intToByteArray(x));
out.write(intToByteArray(y));
out.write(intToByteArray((int)(x*y)));
//Start sending the picture to the server
for(int i = 0; i < y; i++)
for(int j = 0; j < x; j++)
out.write(preview[i+j]);
を私はコードが全く動作しないことを知っているが、うまくいけば、あなたは私が何をしようとしているのアイデアを得ます。
ご協力いただければ幸いです。
あなたがこれに対する答えを見つけましたか?これはまさに私が今必要としていることです。 – SamRowley