UNPKG

vue-2-img

Version:

An easy way to convert HTML sections and charts to JPG, PNG or PDF files

38 lines (28 loc) 1.16 kB
import { createOffscreenCanvas } from '../../utils' // Fix for cors bug // https://github.com/niklasvh/html2canvas/issues/1544 export const imgTo64 = (target, imgList) => { const container = document.querySelector(target) const imgElements = container.querySelectorAll('img') const devicePixelRatio = window.devicePixelRatio // Replace all images with Base64 version imgElements.forEach((imageNode) => { // Replace after rendering if (imgList) imgList(imageNode.src) // Fix CORS issue imageNode.setAttribute('crossOrigin', 'anonymous') // Create canvas const canvas = createOffscreenCanvas() const context = canvas.getContext('2d') // Look good on retina, use device size canvas.width = imageNode.width * devicePixelRatio canvas.height = imageNode.height * devicePixelRatio // Apply css filters context.filter = window.getComputedStyle(imageNode).filter context.drawImage(imageNode, 0, 0, canvas.width, canvas.height) // Reset size canvas.style.width = imageNode.width + 'px' canvas.style.height = imageNode.height + 'px' imageNode.src = canvas.toDataURL('image/png') }) }