Я пытаюсь
отправить изображение на сервер.
сервер обрабатывает изображение.
сервер возвращает обработанное изображение.
Android отображает обработанное изображениена ImageView.
Я не уверен, как получить изображение из ответа (см. код Android ниже)
Как мне решить эту проблему?
Сервер (python, flask):
@app.route("/comi", methods=['POST'])
def main():
mi = cv2.imdecode(np.fromstring(request.files['file'].read(), np.uint8), cv2.IMREAD_COLOR )
co = cv2.imread(random.choice(co_list))
cominame = morph(co, mi, ld, app.static_folder)
return send_file(cominame, mimetype='image/png')
Android:
private void POSTImage(String miFilePath){
final Bitmap miImage = BitmapFactory.decodeFile(miFilePath);
RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this, "Volley works", Toast.LENGTH_SHORT).show();
// ** Handle response **
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, ""+error, Toast.LENGTH_SHORT).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> param = new HashMap<>();
String images = getStringImage(miImage);
param.put("file", images);
return param;
}
};
requestQueue.add(stringRequest);
}
public String getStringImage(Bitmap bitmap){
Log.i("MyHitesh",""+bitmap);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG,100, baos);
byte [] b=baos.toByteArray();
String temp=Base64.encodeToString(b, Base64.DEFAULT);
return temp;
}