Gibt es eine Möglichkeit, einen Bildtyp in einem JMP-Skript zu konvertieren, bevor er in eine Bildspalte in einer Tabelle eingefügt wird?Ich habe eine Reihe von TIF-Dateien, die sich in einer ZIP-Datei befinden.Mit einem Skript wie diesem kann ich die Daten eines bestimmten Bildes in eine Tabelle einlesen:
dt = New Table( "test", New Column( "Image", Expression ) );
dt << Add Rows( 1 );
za = Open( "tif_library", "zip" );
dat = za << Read( "tif_file_n.tif", Format( blob ) );
img = New Image( dat, "tiff" );
dt:Image = img;
Close( dt, Save("test.jmp", "jmp");<BR />Das Problem ist, dass die Datei test.jmp riesig ist.Wenn ich das Bild jedoch von einem TIFF in ein JPEG konvertieren kann, ist die resultierende JMP-Tabelle erheblich kleiner (und ich kann mit den Qualitätseinschränkungen leben).Aber die einzige Möglichkeit, die ich mir vorstellen kann, besteht darin, das Bild als JPG-Datei zu speichern und es dann wieder einzulesen.
dt = New Table( "test", New Column( "Image", Expression ) );
dt << Add Rows( 1 );
za = Open( "tif_library", "zip" );
dat = za << Read( "tif_file_n.tif", Format( blob ) );
img = New Image( dat, "tiff" );
img << Save Image( "temp.jpg", "jpeg");
img1 = New Image( "temp.jpg" );
dt:Image = img1;
Close( dt, Save("test.jmp", "jmp");Gibt es eine einfache Möglichkeit, dies in JMP zu tun, ohne in eine Datei schreiben und diese wieder einlesen zu müssen?Vielen Dank für Ihren klugen Rat!
Wie Sie bemerkt haben, versucht JMP, eine erneute Komprimierung von Bilddateien zu vermeiden, indem die Originalversion der Datei beibehalten wird. JMP wird wahrscheinlich eine PNG-Darstellung anstelle einer JPG-Darstellung beibehalten, wenn JMP das Originalformat nicht ermitteln kann. Abhängig davon, was das TIFF tatsächlich enthält, könnte PNG das sein, was Sie brauchen, oder gut genug sein. Sie können dies tun, ohne eine Zwischendatei auf der Festplatte zu verwenden, wie folgt:
dt = New Table( "test", New Column( "Image", Expression ) );
dt << Add Rows( 1 );
// no tiff handy, but like this:
img = open("C:\Users\chales\Pictures\after.jpg","jpg");
//dt:Image = img;
img<<SCALE></SCALE>
<
PNG ist ein verlustfreies, komprimiertes Format, das sich besonders für Bilder wie die von JMP erstellten Diagramme (mit harten Kanten) eignet. JPG ist eine verlustbehaftete Komprimierung, die für reale Kamerabilder mit weicheren Kanten geeignet ist. TIFF-Dateien können viele Formate enthalten, einschließlich unkomprimierter Rohpixelformate, die sehr groß sind. In meinem obigen Beispiel war „after.jpg“ ein großes Kamerabild, das als PNG viel größer wurde. Möglicherweise bevorzugen Sie Ihren bestehenden Ansatz.