Android-клиент для отправки изображений на сервер Python (не поддерживает) - PullRequest
0 голосов
/ 25 апреля 2019

Я отправляю снимок с камеры с моего Android-клиента на мой сервер Python для дальнейшей обработки изображений Я сделал некоторый код, отправляющий изображение с Android, но когда я получаю его с Python, он не поддерживает формат или может быть поврежден Пожалуйста, помогите мне ..

Android Client:

    protected Void doInBackground(Void... params) {
                try {
                    s = new Socket("192.168.1.200", 8000); //Connects to IP address - enter your IP here
                   // File directory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); //Gets information about a said directory on your device - currently downloads
                   // File photoPath = new File(mCurrentPhotoPath);
                   // File photoPath = new File(mCurrentPhotoPath); //Define your image name I used png but other formats should also work - make sure to specify file extension on server
                    //InputStream input = new FileInputStream(photoPath.getAbsolutePath()); //Gets the true path of your image
                    try {
                        try {

                            DataOutputStream dos = new DataOutputStream(s.getOutputStream());

                            FileInputStream fis = new FileInputStream(mCurrentPhotoPath);
                            int size = fis.available();

                            byte[] data = new byte[size];

                            fis.read(data);
                            dos.writeInt(size);
                            dos.write(data);

                            dos.flush();
                            dos.close();
                            fis.close();


                        } finally {
                            //Flushes and closes socket
                            s.getOutputStream().flush();
                            s.close();
                        }
                    } finally {
                     //   input.close();
                    }


                } catch (IOException e) {
                    e.printStackTrace();
                }




 Python server:

import socket
    import struct
    address = ("192.168.1.200", 8000)
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(address)
    s.listen(1000)
    print("Started Listening")

    client, addr = s.accept()
    print ("got connected from", addr)

    #buf = 0
    #while len(buf)<4:
    #     buf += client.recv(4-len(buf))
    #size = struct.unpack('!i', buf)
    print ("receiving %s bytes")

    with open('data.jpg', 'wb') as img:
        while True:
            data = client.recv(1024)
            if not data:
                break
            img.write(data)
    print ("received, yay!")

    client.close()

Это запись данных в изображение на моем ПК, но не открытие / формат не поддерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...