显卡完善

This commit is contained in:
1 2025-07-23 17:03:15 +08:00
parent c470b9074e
commit a59b923ed1

View File

@ -1070,8 +1070,11 @@ export default {
zone.fontColor = item.txt.col || 0; //
zone.fontBold = item.txt.fW || 0; //
zone.fontStretch = item.txt.stch || 0; //
zone.hAlign = typeof item.txt.hPos === 'number' ? Math.max(item.txt.hPos - 1, 0) : 1; //
zone.vAlign = typeof item.txt.vPos === 'number' ? Math.max(item.txt.vPos - 1, 0) : 1; //
//
console.log('编辑节目item.txt.hPos:', item.txt.hPos, 'item.txt.vPos:', item.txt.vPos);
zone.hAlign = typeof item.txt.hPos === 'number' ? (item.txt.hPos + 1) : 0; // 123
zone.vAlign = typeof item.txt.vPos === 'number' ? (item.txt.vPos + 1) : 0; // 123
console.log('zone.hAlign:', zone.hAlign, 'zone.vAlign:', zone.vAlign);
} else if (item.typ === 1 && item.img) {
//
zone.playType = 1;
@ -2362,8 +2365,8 @@ export default {
fEn: zone.fontEn + 1, //
fW: zone.fontBold, //
stch: zone.fontStretch, //
hPos: zone.hAlign - 1, //
vPos: zone.vAlign - 1 //
hPos: zone.hAlign + 1, // 123
vPos: zone.vAlign + 1 // 123
}
};
area.pLst.push(textItem);
@ -2506,13 +2509,19 @@ export default {
ctx.fillStyle = colors[zone.fontColor] || '#000000';
ctx.textBaseline = 'top';
// zone.fontEn
let fontFamily = ['SimSun', 'SimHei', 'KaiTi'][zone.font] || 'SimSun';
if (zone.fontEn !== undefined && zone.fontEn !== null) {
//
const fontFamilies = [
'SimSun, 宋体, Songti SC, serif',
'SimHei, 黑体, Heiti SC, sans-serif',
'KaiTi, 楷体, Kaiti SC, serif'
];
const enFontMap = [
'Courier New', 'Arial Black', 'Arial Italic', 'Lucida Console', 'Impact', 'Gothic', 'Arial Narrow', 'Comic Sans MS', 'Brush Script MT', 'Century Gothic', 'Times New Roman'
];
fontFamily = enFontMap[zone.fontEn] || fontFamily;
let fontFamily;
if (/^[A-Za-z0-9\s]+$/.test(zone.displayText)) {
fontFamily = enFontMap[zone.fontEn] || fontFamilies[0];
} else {
fontFamily = fontFamilies[zone.font] || fontFamilies[0];
}
ctx.font = `${asset.fontWeight} ${asset.scaledFontSize}px ${fontFamily}`;
@ -2528,6 +2537,8 @@ export default {
startY = zoneY + (zoneHeight - totalHeight) / 2;
} else if (verticalAlign === 2) { //
startY = zoneY + zoneHeight - totalHeight;
} else { //
startY = zoneY;
}
//
@ -2540,6 +2551,8 @@ export default {
startX = zoneX + (zoneWidth - textWidth) / 2;
} else if (zone.hAlign === 2) { //
startX = zoneX + zoneWidth - textWidth;
} else { //
startX = zoneX;
}
//
@ -2675,13 +2688,31 @@ export default {
//
const scaledFontSize = Math.max(10, Math.round(fontSize * scale * 0.8)); // 0.8
const fontFamily = ['SimSun', 'SimHei', 'KaiTi'][zone.font] || 'SimSun';
const fontFamily = [
'SimSun, 宋体, Songti SC, serif',
'SimHei, 黑体, Heiti SC, sans-serif',
'KaiTi, 楷体, Kaiti SC, serif'
];
const fontWeight = zone.fontBold ? 'bold' : 'normal';
// canvas
const measureCanvas = document.createElement('canvas');
const measureCtx = measureCanvas.getContext('2d');
measureCtx.font = `${fontWeight} ${scaledFontSize}px ${fontFamily}`;
const fontFamilies2 = [
'SimSun, 宋体, Songti SC, serif',
'SimHei, 黑体, Heiti SC, sans-serif',
'KaiTi, 楷体, Kaiti SC, serif'
];
const enFontMap2 = [
'Courier New', 'Arial Black', 'Arial Italic', 'Lucida Console', 'Impact', 'Gothic', 'Arial Narrow', 'Comic Sans MS', 'Brush Script MT', 'Century Gothic', 'Times New Roman'
];
let fontFamily2;
if (/^[A-Za-z0-9\s]+$/.test(zone.displayText)) {
fontFamily2 = enFontMap2[zone.fontEn] || fontFamilies2[0];
} else {
fontFamily2 = fontFamilies2[zone.font] || fontFamilies2[0];
}
measureCtx.font = `${fontWeight} ${scaledFontSize}px ${fontFamily2}`;
//
const zoneRenderWidth = swapWH ? zone.height : zone.width;
@ -2720,7 +2751,7 @@ export default {
pages,
isText: true,
scaledFontSize,
fontFamily,
fontFamily: fontFamily2,
fontWeight,
lineHeight
};
@ -2765,9 +2796,13 @@ export default {
const scale = Math.min(canvasW / screenW, canvasH / screenH);
let fontSize = parseInt(this.addProgramFontSizes[zone.fontSize] || '16px');
let scaledFontSize = Math.max(10, Math.round(fontSize * scale));
const fontFamily = ['SimSun', 'SimHei', 'KaiTi'][zone.font] || 'SimSun';
const fontFamily = [
'SimSun, 宋体, Songti SC, serif',
'SimHei, 黑体, Heiti SC, sans-serif',
'KaiTi, 楷体, Kaiti SC, serif'
];
const fontWeight = zone.fontBold ? 'bold' : 'normal';
ctx.font = `${fontWeight} ${scaledFontSize}px ${fontFamily}`;
ctx.font = `${fontWeight} ${scaledFontSize}px ${fontFamily[zone.font]}`;
let lines = [];
let text = zone.displayText;
let zw = zone.width * scale;