Tôi muốn biết làm thế nào tôi có thể dịch toàn cảnh đã được vẽ trên canvas html5, ví dụ: 5 pixel xuống. Tôi biết phương pháp dịch chỉ dịch hệ tọa độ của canvas, nhưng tôi muốn biết liệu có cách nào để dịch toàn cảnh đã được vẽ lên khung vẽ hay không.Dịch một vải html5
Trả lời
Bạn có thể áp dụng các biến đổi và gọi drawImage đi qua trong vải riêng của mình.
ctx.save();
ctx.translate(0, 5);
ctx.drawImage(canvas, 0, 0);
ctx.restore();
Khi làm như vậy, nội dung gốc vẫn sẽ ở bên dưới. Tùy thuộc vào hiệu ứng bạn đang cố gắng thực hiện, việc đặt globalCompositeOperation có thể giúp bạn với điều đó.
Nhưng có khả năng bạn sẽ cần sử dụng drawImage để sao chép đầu tiên vào canvas thứ hai, xóa hiện tại, áp dụng biến đổi và vẽ từ bản sao.
Không trừ khi bạn chụp ảnh màn hình và dịch.
Tuy nhiên, chỉ cần chèn
context.translate(0, 5)// or your values
ngay trước mã vẽ của bạn nên làm các trick.
tham khảo: MDN Canvas Tutorial (Transformations)
Tôi đã bảo hiểm điều đó, và (ít nhất tôi nghĩ rằng tôi) đã làm cho nó rõ ràng đó không phải là những gì tôi muốn. Bản dịch đó sẽ dịch bất cứ thứ gì tôi vẽ sau đó, không phải bất cứ thứ gì đã được vẽ. Tuy nhiên, giải pháp ảnh chụp màn hình của bạn có thể là những gì tôi muốn. Bạn có hướng dẫn về cách thực hiện điều đó không? – George
Đối tượng Canvas có một phương thức gọi là toDataUrl. Xem câu hỏi này http://stackoverflow.com/questions/934012/get-image-data-in-javascript –
- 1. Vẽ đường pixel trong html5 vải
- 2. Cắt xén vải/Xuất khẩu vải html5 với chiều rộng và chiều cao nhất định
- 3. Có một khoảng cách 4px dưới vải/video/yếu tố âm thanh trong HTML5
- 4. Làm thế nào để đệm đồ họa cho một vải html5
- 5. Lật một ảnh trong vải
- 6. Lỗi với SSL dịch vụ Azure trong Vải phát triển
- 7. Làm thế nào để chống răng cưa clip() cạnh trong vải html5 dưới Chrome Windows?
- 8. Vải Raphael điền một ngăn chứa div
- 9. Vải tương đương trong Haskell?
- 10. Loại bỏ một hình ảnh từ một canvas trong HTML5
- 11. Mật khẩu vải
- 12. đăng nhập vải python
- 13. html text vải tràn lược
- 14. vải và svn mật khẩu
- 15. Index Vải (lớp Patricia Trie)
- 16. động "dỡ bỏ" một phác thảo Processing JS từ vải
- 17. Vẽ một vòng tròn trên vải bằng sự kiện chuột
- 18. Vẽ SVG trên vải Kivy
- 19. làm thế nào để thay đổi kích thước của html5 vải mà không có nó rộng nội dung
- 20. thực hiện như sudo trong vải
- 21. html5 canvas strokeStyle?
- 22. Phương thức dịch HTML5, cách đặt lại về mặc định?
- 23. Cần thay đổi màu nền vải khi sử dụng vải js
- 24. thực hiện Fling trên android vải
- 25. panning vải trực tiếp với raphael.js
- 26. HTML5, canvas và strokeRect: dòng hẹp hơn?
- 27. Vải và Jinja Template Tải lên
- 28. iOS nền vải lanh ánh sáng?
- 29. PHP thay thế cho vải của Python
- 30. Vải: Sử dụng lệnh cục bộ
Điều này nghe có vẻ như những gì tôi muốn. Tôi sẽ thử nó và cho bạn biết nếu nó làm việc cho tôi. – George
Giải pháp này hiệu quả với tôi. Tuy nhiên, nó không hoạt động tốt như vậy khi có quy mô tham gia. Tôi có một khung hình có chiều rộng và chiều cao của bản vẽ có chiều rộng và chiều cao là 120000 và 60000. Bản thân phần tử canvas có chiều rộng 1200 và chiều cao 600, do đó việc chuyển đổi tỷ lệ được thực hiện trên hệ tọa độ trước khi vẽ. Dù sao, vấn đề là việc dịch và nhân rộng sẽ làm mờ hình ảnh nếu tôi sao chép nó vào canvas thứ hai, xóa dòng hiện tại và áp dụng biến đổi và sao chép như bạn đã nói. Chỉ muốn biết nếu bạn biết làm thế nào để làm cho nó không bị mờ. – George
Vâng, đó là chính xác những gì đang xảy ra. Vấn đề là nếu tôi vẽ từ canvas chính có độ phân giải cao cho canvas sao lưu, nó sẽ luôn được vẽ bằng độ phân giải cơ bản 1200x600, thay vì độ phân giải 1200000x600000 được tăng tỷ lệ. Ngoài ra, các giải pháp đi qua lại là OK cho mục đích của tôi, vì nó chỉ cần làm điều đó khi người dùng muốn, và sẽ không làm điều đó liên tục. – George