여러분,
단일 이미지를 열고 여러 크기로 조절한 다음 각 크기 조절을 변수에 저장하는 가장 좋은 방법은 무엇입니까?
현재 여러 이미지를 크기 조절 및 정렬하여 최종 이미지를 복사하여 파워포인트에 저장하고 있습니다. 하지만 가져온 이미지 유형에 따라 두 가지 정렬 방식이 필요합니다(첨부된 스크립트의 "coltwin_1"과 "coltwin_2"). 각 정렬 방식은 크기 조절 값이 다릅니다.
예를 들어, 열린 이미지의 크기를 조정하여 "coltwin_1"에 있는 "col1"로 저장해 보았습니다. 두 번째로 크기가 조정된 변수는 "col1x"이며, "coltwin_2" 배열에 사용됩니다. 하지만 col1x = col1 << Scale(1.5)을 사용하면 col1의 크기가 두 레이아웃 모두에 적용됩니다.
이 문제에 대한 가장 좋고 깔끔한 접근 방식은 무엇입니까?
감사합니다.
닐
col1 = Open(SD1 || samplename2 || "_a1_16col_filt.jpg", jpg);
col1 << Scale(.16);
col1x = col1 << Scale(1.5);
col2 = Open(SD1 || samplename2 || "_a2_16col_filt.jpg", jpg);
col2 << Scale(.16);
col2x = col2 << Scale(1.5);
coltwin_1 = Expr( // For surface orientation
V List Box(
H List Box(
sem1,
col1 ,
LT1 ,
),
sp1 = Spacer Box( size(0, 50)),
H List Box(
sem2,
col2,
LT2,
),
sp2 = Spacer Box( size(0, 50)),
H List Box(
sem3,
col3,
LT3
)
)
);
coltwin_2 = Expr( // For Xsec orientation
V List Box(
H List Box(sem1,
V Splitter Box(
col1x,
LT1x
),
),
sp1 = Spacer Box( size(0, 50)),
H List Box(sem2,
V Splitter Box(
col2x,
LT2x
),
),
sp2 = Spacer Box( size(0, 50)),
H List Box(sem3,
V Splitter Box(
col3x,
LT3x
),
)
)
);
뛰어난!
완벽하게 작동합니다.
감사합니다.
"새 이미지" 기능을 제대로 사용하는 방법이 포함되어 있습니다. 첨부된 코드는 제게 효과가 있었습니다.
닐
col1 = Open(SD1 || samplename2 || "_a1_16col_filt.jpg", jpg);
col1 << Scale(.16);
col1x = New Image(col1);
col1x << Scale(2.2);
col1x = New Image(col1); 와 같이 새로운 이미지를 만들어야 할 것 같습니다.
Names Default To Here(1);
img = Open("$SAMPLE_IMAGES/tile.jpg", jpg);
Show(img << get size());
img << scale(0.5);
Show(img << get size());
img2 = img;
img2 << Scale(2);
Show(img << get size(), img2 << get size());
img3 = New Image(img);
img3 << scale(3);
Show(img << get size(), img3 << get size, img2 << get size());
귀중한 의견을 주셔서 감사합니다.
제안하신 초기 접근 방식을 시도해 보았지만 여전히 2차 스케일링 요소가 초기 col1 변수에 영향을 미치는 상황이 발생했습니다. 마지막 줄에 주석을 달기 전/후에 무슨 일이 일어났는지 보여주는 그래픽을 첨부했습니다.

이것이 최선인지, 심지어 좋은 접근 방식인지 확실히 모르겠지만... << Scale()을 사용하면 새 이미지를 반환하지 않고 기존 이미지를 업데이트할 뿐일 것 같습니다. 가장 쉬운 해결책은 col1의 복사본을 colx에 생성한 다음 크기를 조정하는 것입니다.
col1 = Open(SD1 || samplename2 || "_a1_16col_filt.jpg", jpg);
col1 << Scale(.16);
col1x = col1;
col1x << Scale(1.5);
이렇게 하면 원래 이미지를 먼저 0.16으로 조정한 다음, 원래 이미지를 먼저 0.16으로 조정한 다음 1.5로 조정한 새 이미지를 얻게 됩니다(하지만 0.16으로 조정하기 전에 복사본을 만든 다음 올바른 값으로 조정하는 것이 더 좋을 수 있습니다).