发送到服务器后,图像(base64)变得失真

时间:2018-08-21 03:17:08

标签: javascript python canvas ros

我的HTML文件中有一个图像,试图将其发送到服务器。

我正在使用Canvas将图像转换为base64字符串。使用以下代码:

  var img = new Image();
  img.src = 'image13.jpeg'
  var canvas = document.getElementById('canvas')
  var context = canvas.getContext('2d');
  img.onload = function () {
  canvas.width = img.width || img.naturalWidth;
  canvas.height = img.height || img.naturalHeight;
  dataurl = canvas.toDataURL('image/jpeg');

  #Following is the function that sends my dataurl variable to the server.
  var request = new ROSLIB.ServiceRequest({
        clientimage : {
          header: {
              seq: 1,
              stamp: "",
              frame_id: ""
            },
          format: "jpeg",
          data: dataurl}
      });
    }

当我尝试读取服务器上的dataurl对象时,它会全部变形。 服务器代码:

def data_uri_to_cv2_img(uri):
    encoded_data = uri.split(',')[1]
    encoded_data += "=" * ((4 - len(encoded_data) % 4) % 4) 
    print encoded_data
    nparr = np.fromstring(encoded_data.decode('base64'), np.uint8)
    img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
    return img

我的服务器正在接收的数据是这样的:

��U���4�|A
]m|��],��P�θq�P���
                     �u
                          �{�'�I-\e{8�����G(�%}����w{u��nǟj�
�$jz����l.!�{�Y�����P���fYr0Uq^��4��R���f�W�c+=vW��b%
��ʪ�$��;��f����'�e|4�l�ܓ���[��K���mfaR��JM=vj�~�V�݋�c⟁�t���Ks{��滰���%V�<d�$VܧnG�1���XJ3���9n�֪�}޺=�z��h#.E�m�o��zW�u������R�BD�����k��ʂ+pB42<�U���YH+�
                                            ��V++�V�f�+���і�V��]��UiWZ|���{%�K۽��������x~�_���;m5<Qy�iw   h�n��iJ�6�)m�la���X��  ��%M*R���g�խ�b������UiS��{_�ӥֺ��<������������ ���P��i)��-1n�%�x�,��
                                                                                             ��E�B]x<�Uۃ��]^��Z�{����9�a!w�w�ӭ�����C�5�M
��K��- k�S
��E�ȁ�Wp������U8ǚ�D����vZ��u��t$���z�i�
                                            ���uj��ڙ�*f�
                                                         ˽A��tn8��4ۊi���~O�����N�f����������=����\4�p�-���������ڍ�m���̨��m.מ5����Ȉy��oG���O-�L��+�C�~�M[�Z�ޟ6��4��L!�q�ɴ���<�"��F�".5"�j�.���]u@�����OU�����&��2������md����
����^�ox���_��c��GQ��d�%�td�ZmZы�6�ջ�k�Ւ

我无法弄清楚为什么会这样。任何指示或建议都会有很大帮助。

0 个答案:

没有答案