Revert "fix: clip PSD super lock replacements"

This reverts commit 6e647021cdc52a083cace27801044838f11a5864.
This commit is contained in:
Your Name 2026-06-01 18:37:26 +08:00
parent 5d7e8ce773
commit 0baa13f7de
2 changed files with 15 additions and 46 deletions

View File

@ -1471,30 +1471,19 @@ function renderTextLayerPreviewContent(
); );
} }
function getAssignedImageMaskStyle(params: { function getAssignedImageMaskStyle(
layer: AgentPsdTemplateImageLayerSlot; layer: AgentPsdTemplateImageLayerSlot
maskSourceUrl?: string; ): CSSProperties {
}): CSSProperties { const hasMask = Boolean(layer.maskUrl);
const normalizedMaskUrl = String(
params.layer.maskUrl || params.maskSourceUrl || ""
).trim();
const hasMask = Boolean(normalizedMaskUrl);
const maskImageUrl = hasMask
? `url(${buildPsdLayerPreviewUrl(normalizedMaskUrl, {
width: params.layer.width,
quality: 72,
})})`
: undefined;
return { return {
WebkitMaskImage: maskImageUrl, WebkitMaskImage: hasMask ? `url(${layer.maskUrl})` : undefined,
maskImage: maskImageUrl, maskImage: hasMask ? `url(${layer.maskUrl})` : undefined,
WebkitMaskSize: hasMask ? "100% 100%" : undefined, WebkitMaskSize: hasMask ? "100% 100%" : undefined,
maskSize: hasMask ? "100% 100%" : undefined, maskSize: hasMask ? "100% 100%" : undefined,
WebkitMaskRepeat: hasMask ? "no-repeat" : undefined, WebkitMaskRepeat: hasMask ? "no-repeat" : undefined,
maskRepeat: hasMask ? "no-repeat" : undefined, maskRepeat: hasMask ? "no-repeat" : undefined,
WebkitMaskPosition: hasMask ? "center" : undefined, WebkitMaskPosition: hasMask ? "center" : undefined,
maskPosition: hasMask ? "center" : undefined, maskPosition: hasMask ? "center" : undefined,
maskMode: hasMask ? "alpha" : undefined,
}; };
} }
@ -4239,20 +4228,12 @@ export function AgentPsdTemplateEditorDialog({
if (!layerImageUrl) { if (!layerImageUrl) {
return null; return null;
} }
const layerPreviewSourceUrl =
getPsdLayerPreviewSourceUrl(layer);
const assignedImageContainerStyle = assignedUrl const assignedImageContainerStyle = assignedUrl
? { ? {
...layerBoxStyle, ...layerBoxStyle,
...getAssignedImageMaskStyle({ ...getAssignedImageMaskStyle(layer),
layer,
maskSourceUrl: layerPreviewSourceUrl,
}),
} }
: layerBoxStyle; : layerBoxStyle;
const previewZIndex = hasAssignedImage
? Math.max(baseZIndex, renderBaseZIndex + 1)
: baseZIndex;
return ( return (
<div <div
@ -4280,7 +4261,7 @@ export function AgentPsdTemplateEditorDialog({
}} }}
style={{ style={{
...assignedImageContainerStyle, ...assignedImageContainerStyle,
zIndex: previewZIndex, zIndex: baseZIndex,
cursor: canDragAssignedImage cursor: canDragAssignedImage
? imagePlacementDragStateRef.current ? imagePlacementDragStateRef.current
?.layerId === layer.id ?.layerId === layer.id
@ -4542,9 +4523,6 @@ export function AgentPsdTemplateEditorDialog({
effectiveImageAssignments[layer.id] || "" effectiveImageAssignments[layer.id] || ""
).trim() ).trim()
); );
const effectiveBaseZIndex = hasAssignedImage
? Math.max(baseZIndex, renderBaseZIndex + 1)
: baseZIndex;
const isLayerSuperLocked = const isLayerSuperLocked =
isAgentPsdLayerSuperLocked(layer); isAgentPsdLayerSuperLocked(layer);
@ -4556,7 +4534,7 @@ export function AgentPsdTemplateEditorDialog({
style={{ style={{
...frameStyle, ...frameStyle,
zIndex: zIndex:
effectiveBaseZIndex + baseZIndex +
SELECTED_LAYER_INTERACTION_Z_BOOST, SELECTED_LAYER_INTERACTION_Z_BOOST,
background: "rgba(249,115,22,0.08)", background: "rgba(249,115,22,0.08)",
cursor: cursor:
@ -4589,7 +4567,7 @@ export function AgentPsdTemplateEditorDialog({
style={{ style={{
...frameStyle, ...frameStyle,
zIndex: zIndex:
effectiveBaseZIndex + baseZIndex +
(isSelected (isSelected
? SELECTED_LAYER_INTERACTION_Z_BOOST ? SELECTED_LAYER_INTERACTION_Z_BOOST
: 0), : 0),
@ -4626,9 +4604,6 @@ export function AgentPsdTemplateEditorDialog({
); );
const baseZIndex = const baseZIndex =
layerStackZIndexById.get(layer.id) || 1; layerStackZIndexById.get(layer.id) || 1;
const effectiveBaseZIndex = hasAssignedImage
? Math.max(baseZIndex, renderBaseZIndex + 1)
: baseZIndex;
if (!isSelected || !hasAssignedImage) { if (!isSelected || !hasAssignedImage) {
return null; return null;
} }
@ -4656,7 +4631,7 @@ export function AgentPsdTemplateEditorDialog({
44 44
), ),
zIndex: zIndex:
effectiveBaseZIndex + baseZIndex +
SELECTED_LAYER_CONTROLS_Z_BOOST, SELECTED_LAYER_CONTROLS_Z_BOOST,
}} }}
> >

View File

@ -1035,17 +1035,11 @@ export async function renderAgentPsdTemplate(params: {
.png(PSD_RENDER_PNG_OPTIONS) .png(PSD_RENDER_PNG_OPTIONS)
.toBuffer(); .toBuffer();
const shouldUseLayerSourceAsMask = if (layer.maskUrl) {
!layer.maskUrl && isAgentPsdLayerSuperLocked(layer);
if (layer.maskUrl || shouldUseLayerSourceAsMask) {
try { try {
const rawMaskBuffer = layer.maskUrl const maskBuffer = await sharp(
? await readCachedBuffer(layer.maskUrl, "PSD 蒙版资源") await readCachedBuffer(layer.maskUrl, "PSD 蒙版资源")
: await readReusableLayerBuffer(layer); )
if (!rawMaskBuffer) {
throw new Error("Missing PSD layer mask source");
}
const maskBuffer = await sharp(rawMaskBuffer)
.resize({ .resize({
width: Math.max(1, Math.round(layer.width)), width: Math.max(1, Math.round(layer.width)),
height: Math.max(1, Math.round(layer.height)), height: Math.max(1, Math.round(layer.height)),