我的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�Ւ
我无法弄清楚为什么会这样。任何指示或建议都会有很大帮助。