Saya ingin menyalin SEMUA konten dari satu kanvas dan mentransfernya ke kanvas lain semua di sisi klien. Saya akan berpikir bahwa saya akan menggunakan metode canvas.toDataURL()
dan context.drawImage()
untuk mengimplementasikan ini tetapi saya mengalami beberapa masalah.
Solusi saya adalah mendapatkan Canvas.toDataURL()
dan menyimpan ini dalam objek Gambar di Javascript, dan kemudian menggunakan context.drawImage()
metode untuk menempatkannya kembali.
Namun, saya yakin toDataURL
metode ini mengembalikan tag yang dikodekan 64 bit dengan "data:image/png;base64,"
menambahkannya. Ini tampaknya bukan tag yang valid, (saya selalu bisa menggunakan beberapa RegEx untuk menghapus ini), tetapi apakah string yang dikodekan 64 bit SETELAH "data:image/png;base64,"
substring gambar yang valid? Bisakah saya mengatakan image.src=iVBORw...ASASDAS
, dan menggambar ini kembali di kanvas?
Saya telah melihat beberapa masalah terkait: Menampilkan gambar kanvas dari satu kanvas ke kanvas lain menggunakan base64
Tetapi solusinya tampaknya tidak benar.
HTMLCanvasElement
), Anda tidak bisa menggambar konteks (CanvasRenderingContext2D
). GunakanmyContext.canvas
sebagai gantinya.source canvas
asalnya ...@ robert-hurst memiliki pendekatan yang lebih bersih.
Namun, solusi ini juga dapat digunakan, di tempat-tempat ketika Anda benar-benar ingin memiliki salinan Url Data setelah menyalin. Misalnya, saat Anda membangun situs web yang menggunakan banyak operasi gambar / kanvas.
sumber