export function base64ThumbImage(file, quality, callback) {
// 压缩图片需要的一些元素和对象
const reader = new FileReader();
const img = new Image();
return new Promise((resolve, reject) => {
// 文件base64化,以便获知图片原始尺寸
reader.onload = (e) => {
img.src = e.target.result;
reader.readAsDataURL(file.file);
// 缩放图片需要的canvas
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
// base64地址图片加载完毕后
img.onload = (e) => {
const that = e.target;
// 图片原始尺寸
const originWidth = that.width;
const originHeight = that.height;
// 最大尺寸限制
const maxWidth = 750;
const maxHeight = 750;
// 目标尺寸
let targetWidth = originWidth;
let targetHeight = originHeight;
// 图片尺寸超过400x400的限制
if (originWidth > maxWidth || originHeight > maxHeight) {
if (originWidth / originHeight > maxWidth / maxHeight) {
// 更宽,按照宽度限定尺寸
targetWidth = maxWidth;
targetHeight = Math.round(maxWidth * (originHeight / originWidth));
} else {
targetHeight = maxHeight;
targetWidth = Math.round(maxHeight * (originWidth / originHeight));
// canvas对图片进行缩放
canvas.width = targetWidth;
canvas.height = targetHeight;
// 清除画布
context.clearRect(0, 0, targetWidth, targetHeight);
// 图片压缩
context.drawImage(img, 0, 0, targetWidth, targetHeight);
// canvas转为blob并上传
const dataUrl = canvas.toDataURL(file.type || 'image/png', quality);
let res = dataUrl.replace(
/^data:image\/\w+;base64,/,
resolve({
然后在vue文件中使用
import { base64ThumbImage } from "@/utils/tools";
## 注意传入的file参数是file格式
let that=this
base64ThumbImage(file).then((dataUlr) => {
that.photoBase64 = dataUlr.res;
python turtle模块zip下载 python turtle包
turtle的介绍
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
turtle绘图的基础知识
1. 画布(canvas)
画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。
我们可以通过turtle