2013-03-19 41 views
7

Tôi đang cố lưu dữ liệu canvas html5 vào máy chủ bằng base64 + phonegap 2.5.
canvas.toDataURL không dẫn đến dữ liệu hình ảnh/jpeg

nền tảng: cửa sổ điện thoại 7 và 8, Android và iOS.

Nhu cầu cơ bản để thay đổi kích thước hình ảnh là tối ưu hóa dữ liệu trước khi gửi qua máy chủ.

Tôi gặp vấn đề với phương pháp phản ứng nền tảng base64 android định như sau

vấn đề:

  1. Android 4.2: Tôi đã viết mã này c.toDataURL("image/jpeg"); nhưng tôi đã nhận này data:image/png;base64
  2. Android 2.3 : Tôi không thể truy xuất dữ liệu base64

A Tôi có làm gì sai không?

+0

Jalsa karrr milan byte –

Trả lời

10
  • Android 2.3: Tôi không thể lấy dữ liệu base64

canvas.toDataURL không được hỗ trợ trong các phiên bản Android cũ.

Có một sửa chữa js cho rằng nhưng hiệu suất có thể không phải rất tốt: https://code.google.com/p/todataurl-png-js/

Kiểm tra ở đây để biết thêm: toDataURL not working on android browsers

  • Android 4.2: Tôi đã viết mã c.toDataURL này ("hình ảnh/jpeg"); nhưng tôi nhận được dữ liệu này: image/png; base64

Android 4.x hỗ trợ canvas.toDataURL; tuy nhiên, nó không hỗ trợ định dạng jpeg (nếu bạn yêu cầu jpeg, nó sẽ trả về một png).

Thông tin chi tiết: https://github.com/scottjehl/Device-Bugs/issues/33

+0

Cảm ơn rất nhiều vì đã phát lại Luis. nó giúp tôi rất nhiều. – amorbytes

+0

chrome trên Android 4.1+ dường như cung cấp "hình ảnh/jpeg" nếu bạn yêu cầu –

2

Chỉ image/png được trình duyệt cũ (WebKits) hỗ trợ và đây là codec duy nhất bạn có thể dựa vào để có mặt. img/jpeg được thêm sau và vẫn không được nhiều trình duyệt hỗ trợ.

Đối với Android 2.3: hãy thử xem bạn có thể làm điều đó trong trình duyệt vani hay không. Nếu nó hoạt động ở đó thì đó là một vấn đề PhoneGap và nên được báo cáo cho các tác giả.

+0

Cảm ơn rất nhiều cập nhật của bạn. u có thể vui lòng giúp tôi về điều này. Thực ra tôi đang cố gắng giảm kích thước hình ảnh bằng canvas. vì vậy những gì tôi đang làm là tải hình ảnh lên canvas và vẽ lại hình ảnh đó thành kích thước 300x300 và sau đó tìm nạp chuỗi base64 của canvas. và canvas cũng có kích thước 310x310 pixel. nhưng khi chuỗi base64 được tạo lớn hơn thì chuỗi base64 của hình ảnh gốc được tạo bằng thiết bị Android. – amorbytes

+0

Sẽ tốt hơn nếu bạn mở một câu hỏi khác với thông tin cụ thể này, để bối cảnh thảo luận luôn sạch sẽ và có thể tìm kiếm được –

+0

Tôi hiểu ý của bạn. Tôi sẽ làm giống. – amorbytes

Các vấn đề liên quan