Skalierte BildvariablenLeute,
Was ist der beste Ansatz, um ein einzelnes Bild zu öffnen, auf mehrere Größen zu skalieren und jede Skalierungsgröße in einer Variablen zu speichern?
Derzeit öffne ich mehrere Bilder, die skaliert und angeordnet sind, damit das endgültige Bild kopiert und in Powerpoint gespeichert wird. Je nach Art der importierten Bilder sind jedoch zwei unterschiedliche Anordnungen erforderlich ("coltwin_1" und "coltwin_2" im beigefügten Skript). Eine Anordnung hat einen anderen Skalenwert.
Als Beispiel habe ich versucht, ein geöffnetes Bild zu skalieren und als "col1" zu speichern, was in "coltwin_1. Die zweite skalierte Variable ist "col1x", die in der Anordnung "coltwin_2" verwendet wird. Wenn jedoch col1x = col1 << Scale(1.5) verwendet wird, wird die Skalierung für col1 durch beide Layouts weitergegeben.
Was ist der beste und sauberste Ansatz für dieses Problem?
Danke vielmals,
Neil
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
),
)
)
);
GrafikSkripterstellungRe: Skalierte BildvariablenHervorragend!
Funktioniert perfekt.
Danke vielmals,
Dazu gehört auch, wie Sie die Funktion "Neues Bild" richtig verwenden. Der angehängte Code hat bei mir funktioniert.
Neil
col1 = Open(SD1 || samplename2 || "_a1_16col_filt.jpg", jpg);
col1 << Scale(.16);
col1x = New Image(col1);
col1x << Scale(2.2);
Re: Skalierte BildvariablenScheint, als müssten Sie ein neues Bild wie 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());Re: Skalierte BildvariablenVielen Dank für die Eingabe.
Ich habe den von Ihnen vorgeschlagenen anfänglichen Ansatz ausprobiert, aber immer noch eine Situation, in der der sekundäre Skalierungsfaktor immer noch die anfängliche col1-Variable beeinflusste. Ich habe eine Grafik angehängt, die zeigt, was vor / nach dem Kommentieren der letzten Zeile passiert ist.

Re: Skalierte BildvariablenIch bin mir nicht sicher, ob dies der beste oder sogar gute Ansatz ist, aber ... Ich denke, die Verwendung von << Scale() gibt kein neues Bild zurück und aktualisiert nur das alte. Ich denke, die einfachste Lösung wäre, eine Kopie von col1 in colx zu erstellen und diese dann zu skalieren
col1 = Open(SD1 || samplename2 || "_a1_16col_filt.jpg", jpg);
col1 << Scale(.16);
col1x = col1;
col1x << Scale(1.5);
Dadurch sollten Sie das Originalbild zuerst auf 0,16 skaliert und dann ein neues Bild erhalten, das das Originalbild ist, das zuerst auf 0,16 und dann auf 1,5 skaliert wird (es könnte jedoch besser sein, eine Kopie vor der Skalierung von 0,16 zu erstellen und dann auf den richtigen Wert zu skalieren) .