Di quale codice di script ho bisogno per aggiungere automaticamente un'immagine di sfondo a una casella grafica?Di quale codice di script ho bisogno per aggiungere automaticamente un'immagine di sfondo a una casella grafica?
Ecco un esempio di un semplice script che utilizzo per creare un riquadro grafico:
win = New Window( "Map",
Graph Box(
Frame Size(600, 600),
X Scale(0, 1252),
Y Scale(0, 1252),
Pen Color("white"),
Line( {10, 10}, {10, 1200} );
Line( {600, 10}, {600, 1200} );
Line( {1200, 10}, {1200, 1200} );
)
);Dopo aver eseguito lo script sopra, posso trascinare e rilasciare un'immagine jpg sullo sfondo e manipolarla (ruota, cambia dimensione, cambia trasparenza, ecc.).
Di quale codice ho bisogno per automatizzare l'aggiunta dello sfondo dell'immagine jpg come parte dello script?
Ri: Di quale codice di script ho bisogno per aggiungere automaticamente un'immagine di sfondo a una casella grafica?Grazie per l'immagine. ora riesco a trovarlo! Stavo cercando accidentalmente in "Funzioni" invece di "Tutte le categorie".Ri: Di quale codice di script ho bisogno per aggiungere automaticamente un'immagine di sfondo a una casella grafica?Ecco un'immagine del riferimento a Incolla immagine di sfondo

Ri: Di quale codice di script ho bisogno per aggiungere automaticamente un'immagine di sfondo a una casella grafica?Sei davvero vicino. Il problema principale, come sospetti, è il messaggio di segnalazione. Il messaggio di report viene inviato a una piattaforma per ottenere l'albero della casella di visualizzazione. Il GraphBox È un albero displaybox, non una piattaforma. Ci sono anche alcune piccole modifiche ai parametri di posizionamento (e ho giocato anche con altri parametri). Le posizioni in alto, a sinistra e in basso a destra sono specificate nelle stesse coordinate degli assi.
win = New Window( "Map",
gb=Graph Box(
Frame Size(600, 600),
X Scale(0, 1252),
Y Scale(0, 1252),
Pen Color("red"),
Line( {10, 10}, {10, 1200} );
Line( {600, 10}, {600, 1200} );
Line( {1200, 10}, {1200, 1200} );
)
);
fb1 = gb[Frame Box( 1 )];
fb1 << add Image(
Open(
Convert File Path(
"$SAMPLE_IMAGES/black rhino footprint.jpg"
)
),
Transparency( 0.5 ),
Rotate( 45 ),
Bounds(
Top( 800 ),Left( 100 ),
Bottom( 100 ),Right( 800 )
),
//SetSize( {300, 210} )
);
background picture positioned and rotatedbackground picture positioned and rotatedimmagine di sfondo posizionata e ruotata
Ri: Di quale codice di script ho bisogno per aggiungere automaticamente un'immagine di sfondo a una casella grafica?xnelson,
Non riesco a capire come utilizzare il tuo suggerimento. Guardando nel mio Aiuto ==> Scripting Index non sono riuscito a trovare il tuo riferimento "Help==>Scripting Index==>FrameBox==>Paste Background Image". Ho provato il seguente script creato dal mio script di esempio e cercando di applicare il tuo suggerimento:
// Here's my original script:
win = New Window( "Map",
Graph Box(
Frame Size(600, 600),
X Scale(0, 1252),
Y Scale(0, 1252),
Pen Color("white"),
Line( {10, 10}, {10, 1200} );
Line( {600, 10}, {600, 1200} );
Line( {1200, 10}, {1200, 1200} );
)
);
// And here's what I added based on your suggestion:
opr1 = win << report;
fb1 = opr1[Frame Box( 1 )];
fb1 << Add Image(
Open(
Convert File Path(
"$SAMPLE_IMAGES/black rhino footprint.jpg"
)
),
Transparency( 0.9 ),
Rotate( 90 ),
Bounds(
Left( 0.135416666666667 ),
Right( 3.26041666666667 ),
Top( 11.8333333333333 ),
Bottom( -1 )
),
SetSize( {300, 210} )
);Quando eseguo lo script ricevo un messaggio di errore che dice:
"La casella di visualizzazione 'EvalContextBox' non riconosce il messaggio 'report'; forse intendi uno di questi: <<<<<<<< <<<<<<<<<<
Ho esaminato lo Scripting Index e ho trovato un riferimento a "report", ma con la sintassi "y= Report( platform object)". Quindi ho provato a sostituire la riga "opr1 = win << report;" con "opr1 = Report(win)". Ciò ha eliminato il primo messaggio di errore, ma ora ricevo un messaggio di errore "Send Expects Scriptable Object in access or evaluation of 'Send' , fb1 << /*####*/Add Image(".
Ho pensato che forse avrei dovuto fare riferimento alla Graph Box stessa invece che alla New Window, quindi ho provato lo script:
win = New Window( "Map",
gb= Graph Box(
Frame Size(600, 600),
X Scale(0, 1252),
Y Scale(0, 1252),
Pen Color("white"),
Line( {10, 10}, {10, 1200} );
Line( {600, 10}, {600, 1200} );
Line( {1200, 10}, {1200, 1200} );
)
);
opr1 = Report( gb );
fb1 = opr1[Frame Box( 1 )];
fb1 << Add Image(
Open(
Convert File Path(
"$SAMPLE_IMAGES/black rhino footprint.jpg"
)
),
Transparency( 0.9 ),
Rotate( 90 ),
Bounds(
Left( 0.135416666666667 ),
Right( 3.26041666666667 ),
Top( 11.8333333333333 ),
Bottom( -1 )
),
SetSize( {300, 210} )
);(Nota, ho provato prima la sintassi "opr1 = gb << report", ma mi ha dato l'errore "report" originale.) Ho ancora un "Send Expects Scriptable Object in accesso o valutazione di 'Send' , fb1 << / *####*/Aggiungi immagine(" errore.
Che cosa sto facendo di sbagliato?
Inoltre, c'è un modo per incorporare l'immagine nello script? Più persone eseguiranno lo script, quindi un riferimento specifico a una posizione dell'immagine non verrà ridimensionato facilmente. Ad esempio, invece di utilizzare "Apri" quando aggiungo immagine, posso utilizzare "Imposta Blob(Char To Blob())"?
Ri: Di quale codice di script ho bisogno per aggiungere automaticamente un'immagine di sfondo a una casella grafica?Potresti prendere qualche idea da questo post su come è possibile controllare la stratificazione dei segmenti della cornice per spostare l'immagine davanti o dietro i dati. È possibile avere una mappa, punti dati e immagini e ottenerli nell'ordine desiderato.
Ri: Di quale codice di script ho bisogno per aggiungere automaticamente un'immagine di sfondo a una casella grafica?Quello che dovrai fare è incollare l'immagine di sfondo nel Frame Box() del tuo Graph Box(). Di seguito è riportato l'esempio tratto direttamente dallo Scripting Index che illustra come eseguire questa operazione
Aiuto==>Indice scripting==>FrameBox==>Incolla immagine di sfondo
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Animals.jmp" );
op = Overlay Plot(
X( :subject ),
Y( :miles ),
Separate Axes( 1 )
);
opr1 = op << report;
opr2 = opr1 << Clone Box;
opr1 << append( opr2 );
fb1 = opr1[Frame Box( 1 )];
fb1 << Add Image(
Open(
Convert File Path(
"$SAMPLE_IMAGES/black rhino footprint.jpg"
)
),
Transparency( 0.9 ),
Rotate( 90 ),
Bounds(
Left( 0.135416666666667 ),
Right( 3.26041666666667 ),
Top( 11.8333333333333 ),
Bottom( -1 )
),
SetSize( {300, 210} )
);
fb1 << Copy Picture;
fb2 = opr2[Frame Box( 1 )];
fb2 << Paste Background Image;