| Customize Help
| Save Settings

McolStream



Function Map
Synopsis
Load, restore, or save a MIL color matching or relative color calibration context from/to a file or memory stream.
Syntax
void McolStream(
MIL_TEXT_PTR MemPtrOrFileName, //in-out
MIL_ID SysId, //in
MIL_INT64 Operation, //in
MIL_INT64 StreamType, //in
MIL_DOUBLE Version, //in
MIL_INT64 ControlFlag, //in
MIL_ID *ContextColIdPtr, //in-out
MIL_INT *SizeByteVarPtr //out
)
Description

This function can load, restore, or save a MIL color matching or relative color calibration context from/to a file or memory stream.

To inquire the number of bytes necessary to save the context, you should first call this function (McolStream()) with M_INQUIRE_SIZE_BYTE.

The content saved to memory stream is equivalent to the content saved to file. This function is equivalent to a file saved using McolSave().

You can use this and other MIL stream functions, for example, to save all required MIL objects, as well as any other custom data, for your application to a memory stream. Once in a memory stream, you can write the stream to a single file or transfer it over a network. You are responsible for concatenating the streams and for saving the stream to file. All information about the previously allocated context (and the color-samples therein) is saved. However, preprocessing information is not saved.

All of the context's settings (and color-samples) that were in effect when the context was saved will be restored. A loaded or restored context is not preprocessed; therefore, you must call McolPreprocess() before performing McolMatch() (color matching) or McolTransform() (relative color calibration).

Using McolStream(), you can choose to save a backward-compatible version of the context, which will work using an older version of MIL which supports the context. For example, if you allocate a color matching context using MIL 10.0 and save it to version 9.0 PP1, you can restore this context on a computer where MIL 9.0 PP1 is installed. However, all settings and features unique to the higher version will be ignored when restored using the lower version. Settings that do not exist in the lower version will be filled with default values when the context is loaded or restored.

Note that this function reference has not been updated for a MIL system added during a MIL update. Refer to the MIL system's release note to see which MIL system’s documentation you should use in its place and any possible differences.
Parameters
This function is not supported on the selected boards.
This function reference has not been updated for the selected MIL system. To show the content of this page, choose a second MIL system; refer to the MIL system's release note to see which MIL system’s documentation to choose and any possible differences.
Parameters
MemPtrOrFileName
Accepts the address of one of the following (see the Parameter associations section for specifics on which is expected):
  • MIL_TEXT_PTR [optionally, in C++: a reference to a MIL_STRING]
  • Optionally, in C++: a reference to a std::vector of type MIL_UINT8

Specifies the file or memory stream.

See the Parameter associations section for possible values that can be returned/specified.

SysId

Specifies the system on which to restore the context.

See the Parameter associations section for possible values that can be specified.

Operation

Specifies the operation to perform.

See the Parameter associations section for possible values that can be specified.

StreamType

Specifies the type of stream in which to store/from which to restore the context. This parameter must be set to one of the following values:

function map For the type of stream
Click to summarizeValue Description
Click to summarize M_FILE

Specifies a file stream.

Click to summarize M_MEMORY

Specifies a memory stream. You are responsible for allocating a block of memory for the stream.

(summarize)
Version

Specifies the MIL version of the context.

See the Parameter associations section for possible values that can be specified.

ControlFlag

Reserved for future expansion and must be set to M_DEFAULT.

ContextColIdPtr

Specifies the address of the variable in which to write or from which to read the identifier of the context.

See the Parameter associations section for possible values that can be returned/specified.

SizeByteVarPtr

Specifies the address of the variable in which to write the size of the context, in bytes.

If the size is not required, you can set this parameter to M_NULL.

The size of the context varies depending on the MIL version that you specify.

The table below lists possible values for the MemPtrOrFileName, SysId, Operation, Version, and ContextColIdPtr parameters.

function map For performing the stream operation.
Click to summarize
Operation
Description
MemPtrOrFileName
- Possible values passed or returned
SysId
Version
ContextColIdPtr
- Possible values passed or returned
Click to summarize M_INQUIRE_SIZE_BYTE

Inquires the number of bytes required to save a color matching or relative color calibration context to memory stream. This operation is not supported when the StreamType parameter is set to M_FILE.

(summarize)
Click to summarize MemPtrOrFileName

This parameter must be set to M_NULL.

(summarize)
Click to summarize SysId

This parameter must be set to M_NULL.

(summarize)
Click to summarize Version

Specifies the MIL version with which the color matching or relative color calibration context must be compatible when saved. The size of a color matching or relative color calibration context might differ from one MIL version to another.

(summarize)
Click to summarize M_DEFAULT

Specifies the current version of MIL.

Click to summarize M_PROC_VERSION_90_PP1

Specifies the version as being MIL 9.0 Processing Pack 1.

This MIL version is not supported with a relative color calibration context.

(summarize)
Click to summarize M_PROC_VERSION_90_PP2

Specifies the version as being MIL 9.0 Processing Pack 2.

This MIL version is not supported with a relative color calibration context.

(summarize)
Click to summarize M_PROC_VERSION_100

Specifies the version as being MIL 10.0.

This MIL version is not supported with a relative color calibration context.

(summarize)
Click to summarize M_PROC_VERSION_100_PP1

Specifies the version as being MIL 10.0 Processing Pack 1.

Click to summarize M_PROC_VERSION_100_PP2

Specifies the version as being MIL 10.0 Processing Pack 2.

Click to summarize M_PROC_VERSION_100_PP3

Specifies the version as being MIL 10.0 Processing Pack 3.

Click to summarize M_PROC_VERSION_100_SP4

Specifies the version as being MIL 10.0 Service Pack 4.

Click to summarize ContextColIdPtr

Specifies the address of the variable containing the identifier of the color matching or relative color calibration context.

(summarize)
Click to summarize M_LOAD

Loads the content of a specified file or memory stream into a previously allocated color matching or relative color calibration context.

(summarize)
Click to summarize MemPtrOrFileName

Specifies the file or memory stream from which to load the context.

(summarize)
Click to summarize M_INTERACTIVE
[This is only applicable to Windows]

Opens a dialog box from which you can interactively specify the drive, directory, and name of the file, when the StreamType parameter is set to M_FILE.

Click to summarize MIL_TEXT("FileName") 1

Specifies the drive, directory, and name of the file (for example, "C:\mydirectory\myfile"), when the StreamType parameter is set to M_FILE. Color matching contexts typically have an MCOL file extension. Relative color calibration context typically have an MCCC file extension. The function handles (internally) the opening and closing of the file.

To specify a file on a remote computer (under Distributed MIL), prefix the specified file name string with "remote:///" (for example, "remote:///C:\mydirectory\myfile").

(summarize)
Click to summarize MemPtr

Specifies the address of the block of memory, when the StreamType parameter is set to M_MEMORY. The block of memory should be of type MIL_UINT8. The specified address must correspond to the first memory address in which the object is located, and the block of memory must contain the entire object.

Note that when using a C compiler (not a C++ or other compiler), you must cast the MIL_UINT8 pointer to a MIL_TEXT_PTR.

(summarize)
Click to summarize SysId

This parameter must be set to M_NULL.

(summarize)
Click to summarize Version

This parameter must be set to M_DEFAULT.

(summarize)
Click to summarize ContextColIdPtr

Specifies the address of the variable containing the identifier of the color matching or relative color calibration context. All previous settings are overwritten with those of the loaded context, or are set to the default value if the settings didn't exist in the version of MIL from which the context is being loaded.

(summarize)
Click to summarize M_RESTORE

Restores a color matching or relative color calibration context from a file or memory stream and assigns it a MIL identifier.

(summarize)
Click to summarize MemPtrOrFileName

Specifies the file or memory stream from which to restore the context.

(summarize)
Click to summarize M_INTERACTIVE
[This is only applicable to Windows]

Opens a dialog box from which you can interactively specify the drive, directory, and name of the file, when the StreamType parameter is set to M_FILE.

Click to summarize MIL_TEXT("FileName") 1

Specifies the drive, directory, and name of the file (for example, "C:\mydirectory\myfile"), when the StreamType parameter is set to M_FILE. Color matching contexts typically have an MCOL file extension. Relative color calibration context typically have an MCCC file extension. The function handles (internally) the opening and closing of the file.

To specify a file on a remote computer (under Distributed MIL), prefix the specified file name string with "remote:///" (for example, "remote:///C:\mydirectory\myfile").

(summarize)
Click to summarize MemPtr

Specifies the address of the block of memory, when the StreamType parameter is set to M_MEMORY. The block of memory should be of type MIL_UINT8. The specified address must correspond to the first memory address in which the object is located, and the block of memory must contain the entire object.

Note that when using a C compiler (not a C++ or other compiler), you must cast the MIL_UINT8 pointer to a MIL_TEXT_PTR.

(summarize)
Click to summarize SysId

Specifies the system on which to allocate the color matching or relative color calibration context.

(summarize)
Click to summarize M_DEFAULT_HOST

Specifies the default Host system of the current MIL application.

Click to summarize MIL system identifier

Specifies a valid system identifier, previously allocated using MsysAlloc().

Click to summarize Version

This parameter must be set to M_DEFAULT.

(summarize)
Click to summarize ContextColIdPtr

Specifies the address of the variable in which to write the identifier of the color matching or relative color calibration context. If the operation is not successful, M_NULL is returned.

(summarize)
Click to summarize M_SAVE

Saves a color matching or relative color calibration context to a specified file or memory stream.

(summarize)
Click to summarize MemPtrOrFileName

Specifies the file or memory stream.

(summarize)
Click to summarize M_INTERACTIVE
[This is only applicable to Windows]

Opens a dialog box from which you can interactively specify the drive, directory, and name of the file, when the StreamType parameter is set to M_FILE.

Click to summarize MIL_TEXT("FileName") 1

Specifies the drive, directory, and name of the file (for example, "C:\mydirectory\myfile"), when the StreamType parameter is set to M_FILE. For easier use with other Matrox Imaging software products, when saving a color matching context to a file, use the MCOL file extension. When saving a relative color calibration context to a file, use the MCCC file extension. The function handles (internally) the opening and closing of the file. If the file already exists, it will be overwritten.

To specify a file on a remote computer (under Distributed MIL), prefix the specified file name string with "remote:///" (for example, "remote:///C:\mydirectory\myfile").

(summarize)
Click to summarize MemPtr

Specifies the address of the block of memory, when the StreamType parameter is set to M_MEMORY. The block of memory should be of type MIL_UINT8. The specified address must correspond to the first memory address in which to write, and the block of memory must be large enough to stream the entire object. To determine the required size, call this function with M_INQUIRE_SIZE_BYTE.

Note that when using a C compiler (not a C++ or other compiler), you must cast the MIL_UINT8 pointer to a MIL_TEXT_PTR.

(summarize)
Click to summarize SysId

This parameter must be set to M_NULL.

(summarize)
Click to summarize Version

Specifies the MIL version with which the color matching or relative color calibration context must be compatible when saved. Note that the color matching or relative color calibration context can only be up to one major release older (MIL 9.0) than the current version.

(summarize)
Click to summarize M_DEFAULT

Specifies the current version of MIL.

Click to summarize M_PROC_VERSION_90_PP1

Sets the version as being MIL 9.0 Processing Pack 1.

This MIL version is not supported with a relative color calibration context.

(summarize)
Click to summarize M_PROC_VERSION_90_PP2

Sets the version as being MIL 9.0 Processing Pack 2.

This MIL version is not supported with a relative color calibration context.

(summarize)
Click to summarize M_PROC_VERSION_100

Sets the version as being MIL 10.0.

This MIL version is not supported with a relative color calibration context.

(summarize)
Click to summarize M_PROC_VERSION_100_PP1

Sets the version as being MIL 10.0 Processing Pack 1.

Click to summarize M_PROC_VERSION_100_PP2

Specifies the version as being MIL 10.0 Processing Pack 2.

Click to summarize M_PROC_VERSION_100_PP3

Specifies the version as being MIL 10.0 Processing Pack 3.

Click to summarize ContextColIdPtr

Specifies the address of the variable containing the identifier of the color matching or relative color calibration context to save.

(summarize)

1 If you are passing the value in a variable, don't enclose it in MIL_TEXT().

Compilation information
Header Include mil.h.
Library Use mil.lib; milcolor.lib.
DLL Requires mil.dll; milcolor.dll.
FILE MEMORY INQUIRE SIZE BYTE NULL NULL DEFAULT PROC VERSION 90 PP1 PROC VERSION 90 PP2 PROC VERSION 100 PROC VERSION 100 PP1 PROC VERSION 100 PP2 PROC VERSION 100 PP3 PROC VERSION 100 SP4 LOAD INTERACTIVE NULL DEFAULT RESTORE INTERACTIVE DEFAULT HOST DEFAULT SAVE INTERACTIVE NULL DEFAULT PROC VERSION 90 PP1 PROC VERSION 90 PP2 PROC VERSION 100 PROC VERSION 100 PP1 PROC VERSION 100 PP2 PROC VERSION 100 PP3 FILE MEMORY