66 lines
2.0 KiB
TypeScript
66 lines
2.0 KiB
TypeScript
import { A4_EXPORT_SIZE_150DPI } from '../constants/colors';
|
|
|
|
/**
|
|
* 导出为固定打印分辨率(A4 150 DPI),避免高 DPR 设备导出过大图导致打印慢、文件大
|
|
*/
|
|
const doSaveImage = (canvas: Canvas) => {
|
|
const { width: destWidth, height: destHeight } = A4_EXPORT_SIZE_150DPI;
|
|
wx.canvasToTempFilePath({
|
|
canvas,
|
|
fileType: 'jpg',
|
|
quality: 0.9,
|
|
destWidth,
|
|
destHeight,
|
|
success: (res) => {
|
|
wx.saveImageToPhotosAlbum({
|
|
filePath: res.tempFilePath,
|
|
success: () => {
|
|
// 下载成功提示(下载次数记录在 downloadPrint.ts 中处理)
|
|
wx.showToast({
|
|
title: '保存成功,请在相册中查看',
|
|
icon: 'success',
|
|
duration: 2000,
|
|
});
|
|
},
|
|
// fail: () => wx.showToast({
|
|
// title: '保存涂色卡失败,请重试!',
|
|
// icon: 'none',
|
|
// duration: 2000,
|
|
// })
|
|
});
|
|
},
|
|
fail: () => {
|
|
wx.showToast({
|
|
title: '生成涂色卡失败,请重试!',
|
|
icon: 'none',
|
|
duration: 2000,
|
|
});
|
|
},
|
|
});
|
|
};
|
|
|
|
const requestPhotoPermission = (canvas: Canvas) => {
|
|
wx.authorize({
|
|
scope: 'scope.writePhotosAlbum',
|
|
success: () => doSaveImage(canvas),
|
|
fail: () =>
|
|
wx.showToast({
|
|
title: '请在“设置-添加到相册”中开启相册权限以保存涂色卡',
|
|
icon: 'none',
|
|
duration: 3000,
|
|
}),
|
|
});
|
|
};
|
|
|
|
export const checkAndSaveImage = (canvas: Canvas) => {
|
|
wx.getSetting({
|
|
success: (res) => {
|
|
if (!res.authSetting['scope.writePhotosAlbum']) {
|
|
requestPhotoPermission(canvas);
|
|
} else {
|
|
doSaveImage(canvas);
|
|
}
|
|
},
|
|
});
|
|
};
|