ybg-screen-shot
Version:
web端自定义截屏插件(原生JS版)
28 lines (25 loc) • 943 B
text/typescript
/**
* 取出一条历史记录
*/
import InitData from "@/lib/main-entrance/InitData";
export function takeOutHistory() {
const data = new InitData();
const lastImageData = data.popHistory();
const screenShortCanvas = data.getScreenShortController()?.getContext("2d");
if (screenShortCanvas != null && lastImageData) {
const context = screenShortCanvas;
if (data.getUndoClickNum() == 0 && data.getHistory().length > 0) {
// 首次取出需要取两条历史记录
const firstPopImageData = data.popHistory() as Record<string, any>;
context.putImageData(firstPopImageData["data"], 0, 0);
} else {
context.putImageData(lastImageData["data"], 0, 0);
}
}
data.setUndoClickNum(data.getUndoClickNum() + 1);
// 历史记录已取完,禁用撤回按钮点击
if (data.getHistory().length <= 0) {
data.setUndoClickNum(0);
data.setUndoStatus(false);
}
}