Text zu einem Bild hinzufügen@lwx228 fragte Wie füge ich Text zu einer Zelle hinzu, in die ein Bild geladen ist?Diese Idee ist ziemlich einfach: Legen Sie das Bild in eine Rahmenbox, verwenden Sie ein Grafikskript zum Dekorieren, machen Sie ein neues Bild. Die Details, um ein schönes Round-Trip-Bild zu erhalten, sind etwas komplizierter. Der Rahmen muss angepasst und skaliert, das Bild positioniert und das endgültige Bild zugeschnitten werden.
// open the original
original = New Image(
"https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Oroblanco_%28sweetie%29_fruits.jpg/320px-Oroblanco_%28sweetie%29_fruits.jpg"
);
{xSize, ySize} = original << size;
// use a frame to do the drawing, make the original fit the frame exactly
gb = Graph Box(
<<BACKGROUNDCOLOR></BACKGROUNDCOLOR>
Die Ergebnisse unten zeigen das Bild, das die Rahmenbox mit den Dekorationen füllt, und drei Bilder unten. Das linke Bild ist das Original, das mittlere ist modifiziert und das rechte ist die Differenz. Der Unterschied ist meistens schwarz, keine Veränderung, was gut ist. Der Text in der Differenz ist unscharf, da das Anti-Aliasing subtile Änderungen am Rand des Textes vorgenommen hat.
Circles and text added on top of fruit picture.Kreise und Text über dem Fruchtbild hinzugefügt.
Bild von Beschneiden Sie ein JPG-Bild erklären, wie Getreide funktioniert.
Mehr sehen...
The zero-based pixel indexes are on the hairlines between the pixels.Die nullbasierten Pixelindizes befinden sich auf den Haarlinien zwischen den Pixeln.
Use a graphics frame box to add text and lines on top of a picture.Verwenden Sie ein Grafikrahmenfeld, um Text und Linien über einem Bild hinzuzufügen.
Verwenden Sie ein Rahmenfeld, um einem Bild Text und Linien hinzuzufügen.
Re: Text zu einem Bild hinzufügenOK
Danke Craige!
gb[framebox(1)]<<ADD image=""></ADD>
Re: Text zu einem Bild hinzufügenJa. Es ist ein wenig schwieriger, Erklärungen unten.
// open the original
original = New Image(
"https://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Oroblanco_%28sweetie%29_fruits.jpg/320px-Oroblanco_%28sweetie%29_fruits.jpg"
);
{xSize, ySize} = original << size;
overlay1 = new image("https://us.v-cdn.net/6038925/uploads/images/35680iA0171FFF13D53E06/NaturalCat.png");// cat
{xOverlay1Size, yOverlay1Size} = overlay1 << size;
dt = open("$sample_data/big class families.jmp","invisible");
overlay2 = dt:picture[1];// katie
overlay2<<SCALE></SCALE>
Pictures added over another picture.Bilder über einem anderen Bild hinzugefügt.
Das Grafikskript kann das Bild nicht hinzufügen. Verwenden Sie stattdessen die Nachricht <
Die Funktion GraphBox(...) akzeptiert drei Arten von Argumenten: Parameter, Meldungen und Skripte. Best Practice ist es, die Parameter und Meldungen an die erste Stelle zu setzen und ein einzelnes Skript am Ende. Die Parameter und Meldungen werden durch Kommas getrennt. Das Skript verwendet Semikolons, um Anweisungen zu trennen.
gb = Graph Box(
<<BACKGROUNDCOLOR></BACKGROUNDCOLOR>
Viele, viele Graphbox-Skripte wurden mit versehentlichen Kommas anstelle von Semikolons geschrieben. Jedes Komma bewirkt, dass ein neues Skript beginnt, das vom vorherigen Skript getrennt ist. Es ist ein bisschen zusätzlicher Overhead für JMP, mehrere Skripts auszuführen, wenn eins ausreichen würde.
Re: Text zu einem Bild hinzufügenHallo Craige!
Ich frage mich, ob JSL ein kleines Bild an der angegebenen Position des Bildes überlagern kann?
Ich habe im Hilfehandbuch gesucht und keine Antwort gefunden.
Das ist alles, woran ich denken kann. Danke Experten!
img = Open( "$SAMPLE_IMAGES/tile.jpg", jpg );
{x, y} = img << size;
img << crop( Left( 100 ), Right( x - 251 ), top( 0 ), bottom( y - 0 ) );
{x1, y1} = img << size;
img2 = Open( "$SAMPLE_IMAGES/black rhino footprint.jpg", jpg );
img << copy;//??
img2 << paste(100,25);//??
obj = New Window( "paste", New Image( img2 ) );<BR />