1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- window.qrcodeContentScript = function () {
- let decode = function (imgUrl) {
- function loadImage(src) {
- return new Promise(resolve => {
- let image = new Image();
- image.setAttribute('crossOrigin', 'Anonymous');
- image.src = src;
- image.onload = function () {
- let width = this.naturalWidth;
- let height = this.naturalHeight;
- let canvas = document.createElement('canvas');
- canvas.style.cssText = 'position:absolute;top:-10000px;left:-10000px';
- document.body.appendChild(canvas);
- canvas.setAttribute('id', 'qr-canvas');
- canvas.height = height + 100;
- canvas.width = width + 100;
- let context = canvas.getContext('2d');
- context.fillStyle = 'rgb(255,255,255)';
- context.fillRect(0, 0, canvas.width, canvas.height);
- context.drawImage(image, 0, 0, width, height, 50, 50, width, height);
- resolve(canvas.toDataURL());
- };
- image.onerror = function () {
- resolve(src);
- };
- });
- }
- loadImage(imgUrl).then(dataUrl => {
- chrome.runtime.sendMessage({
- type: 'fh-dynamic-any-thing',
- thing: 'qr-decode',
- params: {
- uri: dataUrl || imgUrl
- }
- });
- });
- };
- return {decode}
- };
|