优化图片和显示问题
This commit is contained in:
@@ -742,18 +742,18 @@ function soonDesign2LockBgObject(bgObj) {
|
||||
});
|
||||
}
|
||||
|
||||
/** 打开旧文件:去掉残留模板层,用户背景独占 canvas[0] 并贴齐卡框 */
|
||||
/** 打开旧文件:把 canvas[0] 的用户背景图贴齐卡框并锁定。
|
||||
* 设计前提:保存 .soon 时 canvas[0] == 用户背景图(set_bg 已把它放到 0 位)。
|
||||
* 之前的实现会 fabricCanvas.remove(all[0]) 并把 all[1](前景)当成新 userBg,导致重打开后
|
||||
* 用户背景图丢失、前景元素被错误地缩放并锁定到卡框大小。本版本不再删除 all[0],
|
||||
* 改为直接把已有的 all[0] 当成用户背景图处理。 */
|
||||
function soonDesign2NormalizeUserBg(fabricCanvas, metaList) {
|
||||
if (!soonDesign2IsUserBgMeta(metaList) || !fabricCanvas) return null;
|
||||
var all = fabricCanvas.getObjects().filter(function (o) { return !o.isGuideLine; });
|
||||
if (!all.length) return null;
|
||||
var frame = soonDesign2FrameOrigin(fabricCanvas);
|
||||
var userBg = all[0];
|
||||
if (all.length > 1) {
|
||||
fabricCanvas.remove(all[0]);
|
||||
userBg = fabricCanvas.getObjects().filter(function (o) { return !o.isGuideLine; })[0];
|
||||
}
|
||||
if (!userBg) return null;
|
||||
var frame = soonDesign2FrameOrigin(fabricCanvas);
|
||||
soonDesign2SnapImageToCardFrame(userBg, fabricCanvas, frame);
|
||||
soonDesign2ApplyUserBgAsCanvas0(userBg, fabricCanvas, null);
|
||||
soonDesign2LockBgObject(userBg);
|
||||
|
||||
@@ -1442,6 +1442,13 @@ window.openFile = function open(file, jAlready) {
|
||||
if (typeof window.soonReportOpenLoadError === 'function') window.soonReportOpenLoadError('模板/文件加载失败');
|
||||
return;
|
||||
}
|
||||
// 防御性:j.b 缺失时给一个空画布占位(避免 canvas2.loadFromJSON 报 undefined)
|
||||
if (!j.b || typeof j.b !== 'object' || !Array.isArray(j.b.objects)) {
|
||||
if (typeof console !== 'undefined' && console.warn) {
|
||||
console.warn('[design2.openFile] j.b 缺失,自动以空背面回退。文件:', file);
|
||||
}
|
||||
j.b = { version: '4.6.0', objects: [], hoverCursor: 'move' };
|
||||
}
|
||||
function runOpen() {
|
||||
if (!background_image) {
|
||||
if (typeof window.soonReportOpenLoadError === 'function') window.soonReportOpenLoadError('模板/文件加载失败');
|
||||
|
||||
@@ -789,7 +789,10 @@ $('#down_obj').click(function () {
|
||||
$('#set_bg').click(function () {
|
||||
let obj = canvas.getActiveObject()
|
||||
let idx = getIndex(obj)
|
||||
var oldBg = background_image1 || background_image
|
||||
// 旧背景:取当前画布对应的占位背景图(正面->background_image1,背面->background_image2),
|
||||
// 背面场景下 background_image 已被 #back_side 切换为 background_image2。
|
||||
var oldBg = (canvas === canvas2) ? background_image2 : background_image1
|
||||
if (!oldBg) oldBg = background_image
|
||||
var frame = typeof window.soonDesign2FrameOrigin === 'function'
|
||||
? window.soonDesign2FrameOrigin(canvas)
|
||||
: { left: oldBg.left, top: oldBg.top }
|
||||
|
||||
Reference in New Issue
Block a user