Variables d'image à l'échelleGens,
Quelle est la meilleure approche pour ouvrir une seule image, mettre à l'échelle plusieurs tailles et enregistrer chaque taille d'échelle dans une variable ?
Actuellement, j'ouvre plusieurs images qui sont mises à l'échelle et disposées de manière à ce que l'image finale soit copiée et enregistrée sur Powerpoint. Cependant, selon les types d'images importées, deux arrangements distincts sont nécessaires ("coltwin_1" et "coltwin_2" dans le script joint). Un arrangement aura une valeur d'échelle différente.
Par exemple, j'ai essayé de mettre à l'échelle une image ouverte et de l'enregistrer sous "col1" qui serait dans "coltwin_1. La deuxième variable mise à l'échelle est "col1x" utilisée dans l'arrangement "coltwin_2". Cependant, lors de l'utilisation de col1x = col1 << Scale(1.5), l'échelle de col1 s'est propagée dans les deux mises en page.
Quelle est la meilleure et la plus propre approche de ce problème ?
Merci beaucoup,
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
),
)
)
);
GraphiqueScriptRe : Variables d'image à l'échelleExceptionnel!
Marche parfaitement.
Merci beaucoup,
qui comprend comment utiliser correctement la fonction "Nouvelle image". Le code ci-joint est ce qui a fonctionné pour moi.
Neil
col1 = Open(SD1 || samplename2 || "_a1_16col_filt.jpg", jpg);
col1 << Scale(.16);
col1x = New Image(col1);
col1x << Scale(2.2);
Re : Variables d'image à l'échelleOn dirait que vous devrez créer une nouvelle image comme 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 : Variables d'image à l'échelleMerci beaucoup pour la contribution.
J'ai essayé l'approche initiale que vous avez suggérée, mais j'ai toujours eu une situation où le facteur d'échelle secondaire affectait toujours la variable col1 initiale. J'ai joint un graphique montrant ce qui s'est passé avant / après avoir commenté la dernière ligne.

Re : Variables d'image à l'échelleJe ne sais vraiment pas s'il s'agit d'une meilleure ou même d'une bonne approche, mais... Je pense que l'utilisation de << Scale() ne renverra pas la nouvelle image et mettra simplement à jour l'ancienne. Je pense que la solution la plus simple serait de créer une copie de col1 vers colx, puis de la mettre à l'échelle
col1 = Open(SD1 || samplename2 || "_a1_16col_filt.jpg", jpg);
col1 << Scale(.16);
col1x = col1;
col1x << Scale(1.5);
Cela devrait vous donner l'image d'origine d'abord mise à l'échelle à 0,16, puis une nouvelle image qui sera l'image d'origine d'abord mise à l'échelle à 0,16 puis à 1,5 (il serait peut-être préférable de créer une copie avant la mise à l'échelle de 0,16, puis de mettre à l'échelle pour corriger la valeur) .