arrayBufferToBase64 (buffer) {
var binary = ''
var bytes = new Uint8Array(buffer)
var len = bytes.byteLength
for (var i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i])
return window.btoa(binary)
const base64Str = 'data:image/jpeg;base64,' + this.arrayBufferToBase64(res)
const base64Str = 'data:application/pdf;base64,' + this.arrayBufferToBase64(res)
const blob = base64ToBlob(sBaseFile);
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob);
} else {
const fileURL = URL.createObjectURL(blob);
window.open(fileURL);//弹出ppf文件
base64ToBlob 方法在txt中,这里放不下了
一直以为图片转为 base64 很复杂,结果今天看了下 Docusaurus 的 plugin-ideal-image 插件源码,居然只要一行代码就完事了:
const toBase64 = (extMimeType: string, data: Buffer): string =>
`data:${extMimeType};base64,${data.toString('base64')}`;
这里说明下,这个插件使用 sharp 对图片进行处理,最后返回的是一个 Buffer 实例,我们先来
Js/css/html合并压缩
3.优化图片
雪碧图:优点减少请求,缺点图片资源过大,jpg有损压缩,压缩率大,没有图片透明,png兼容性好,可以图片透明,webp在ios和webview存在兼容性问题,svg矢量图,内嵌代码。
4.Css/js加载和执行
css写在head,js写在body(后面说为什么)
注意:GUI 渲染线程为什么与
ArrayBuffer
ArrayBuffer对象用来表示通用的、固定长度的原始二进制数据缓冲区。ArrayBuffer是不可以直接操作的,而是要通过类型数组对象或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容,详细的可以查看这篇文章:前端二进制学习(三)。
var buffer = new ArrayBuffer(8);
console.log(buffer.byteLength); // 输出字节
new ArrayBuffer时,传入的参数
buffer是一段暂时存放输入输出数据的一段内存
js语言没有二进制数据,在处理tcp和文件流的时候必须要处理二进制。NODEJS提供了一个Buffer类提供对二进制数据的操作。node把二进制转换成十六进制,存入buffer。
bufferi里每一项都是一个十六进制,表示一个字节。
Buffer是一个表示固定内存分配的全局对象,是global的属性。
特点:放到缓存区中的字节...
流程:先将待编码的字符串转成Buffer对象,然后将Buffer中的内容用Base64编码导出编码后的base64字符串
let str = "我是待编码的字符串"
console.log(str) // 输出: 我是待编码的字符串
let buffer = Buffer.from(str, 'utf-8')
var base64Str = buffer.toString('ba...
2.base64 转成blob 上传
function dataURItoBlob(dataURI) {
var byteString = atob(dataURI.split(',')[1]);
var mimeString = dataURI.split(
function base64ToImg(base64Str, imgType) {
// 去掉base64字符串前缀
const base64Data = base64Str.replace(/^data:image\/\w+;base64,/, '');
// 将base64字符串转换为ArrayBuffer对象
const buffer = new ArrayBuffer(base64Data.length);
const bytes = new Uint8Array(buffer);
for (let i = 0; i < base64Data.length; i++) {
bytes[i] = base64Data.charCodeAt(i);
// 将ArrayBuffer对象转换为Blob对象
const blob = new Blob([buffer], { type: `image/${imgType}` });
// 将Blob对象转换为URL
const url = URL.createObjectURL(blob);
// 创建Image对象
const img = new Image();
// 加载图片
img.src = url;
// 返回Image对象
return img;
该函数接受两个参数:base64字符串和图片类型。它将base64字符串转换为图片,并返回一个Image对象。
import { getCurrentInstance } from "vue";
setup(){
let {ctx:that, proxy} = getCurrentInstance()
that.$forceUpdate()
element ui组件的element.style怎么改?
止水辛木:
ant design vue 表格里select下拉框选过的项设置禁用(不能重复)