将图片地址转成base64
toBase64 ( imgUrl ) {
new Promise ( ( resove ) => {
const image = new Image ( ) ;
image. setAttribute ( "crossOrigin" , "anonymous" ) ;
const imageUrl = imgUrl;
image. src = imageUrl;
image. onload = ( ) => {
var canvas = document. createElement ( "canvas" ) ;
canvas. width = image. width;
canvas. height = image. height;
var context = canvas. getContext ( "2d" ) ;
context. drawImage ( image, 0 , 0 , image. width, image. height) ;
var quality = 0.8 ;
const dataurl = canvas. toDataURL ( "image/jpeg" , quality) ;
const base64Data = dataurl. split ( "base64," ) [ 1 ] ;
resove ( base64Data) ;
} ;
} ) ;
} ,
将base64转成Blob
convertBase64ToBlob ( base64, type ) {
console. log ( base64) ;
var bytes = window. atob ( base64) ;
var ab = new ArrayBuffer ( bytes. length) ;
var ia = new Uint8Array ( ab) ;
for ( var i = 0 ; i < bytes. length; i++ ) {
ia[ i] = bytes. charCodeAt ( i) ;
}
return new Blob ( [ ab] , {
type : type,
} ) ;
} ,
复制
copyFn ( image ) {
let base64Data = this . toBase64 ( image) ;
console. log ( base64Data) ;
const blobInput = this . convertBase64ToBlob ( base64Data, "image/png" ) ;
const clipboardItemInput = new ClipboardItem ( {
"image/png" : blobInput,
} ) ;
if ( navigator. clipboard) {
navigator. clipboard. write ( [ clipboardItemInput] ) ;
}
} ,