¿Hay una manera de convertir un tipo de imagen en un script jmp antes de agregarlo en una columna de imagen en una tabla? Tengo un montón de archivos .tif que residen en un archivo .zip. Puedo leer los datos de una imagen específica en una tabla usando un script como este:
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 />El problema es que el archivo test.jmp es enorme. Sin embargo, si puedo convertir la imagen de un tiff a un jpeg, la tabla jmp resultante es considerablemente más pequeña (y puedo vivir con las limitaciones de calidad). Pero la única manera que puedo ver para hacer esto es guardar la imagen como un archivo .jpg y luego leerla nuevamente.
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");¿Hay una forma sencilla de hacer esto en JMP sin tener que escribir en un archivo y leerlo de nuevo? ¡Gracias por tu sabio consejo!
Como ha notado, JMP intenta evitar volver a comprimir archivos de imagen manteniendo la versión original del archivo. JMP probablemente mantendrá una representación PNG en lugar de un JPG si JMP no puede determinar el formato original. Dependiendo de lo que realmente contiene el TIFF, PNG puede ser lo que necesita, o lo suficientemente bueno. Puedes hacer esto sin usar un archivo de disco intermedio, como este:
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>
<< getpixels devuelve una matriz de colores de píxeles, y newimage () crea una imagen a partir de esos píxeles. El tipo de archivo original (JPG en este caso) no se transfiere.
PNG es un formato comprimido sin pérdidas que es particularmente adecuado para imágenes como las gráficas que crea JMP (con bordes duros). JPG es una compresión con pérdida adecuada para imágenes de cámara reales con bordes más suaves. Los archivos TIFF pueden contener muchos formatos, incluidos los formatos de píxeles sin procesar sin comprimir que son enormes. En mi ejemplo anterior, "after.jpg" era una imagen de cámara grande que se hizo mucho más grande como un png. Es posible que prefiera su enfoque existente.