The CImg Library - C++ Template Image Processing Toolkit



[ Main ] [ Download ] [ Screenshots ] [ FAQ ] [ Tutorial ] [ Documentation ] [ Forum ] [ Links ]
cimg_library::cimg Namespace Reference

Contains low-level functions and variables of the CImg Library. More...

Functions

std::FILE * output (std::FILE *file)
 Get/set default output stream for the CImg library messages.
void info ()
 Print informations about CImg environement variables.
template<typename T >
void unused (const T &,...)
 Avoid warning messages due to unused parameters. Do nothing actually.
unsigned int & exception_mode (const unsigned int mode)
 Set current CImg exception mode.
unsigned int & exception_mode ()
 Return current CImg exception mode.
int dialog (const char *const title, const char *const msg, const char *const button1_label, const char *const button2_label, const char *const button3_label, const char *const button4_label, const char *const button5_label, const char *const button6_label, const bool is_centered)
 Display a simple dialog box, and wait for the user's response [specialization].
double eval (const char *const expression, const double x, const double y, const double z, const double c)
 Evaluate math expression.
void warn (const char *const format,...)
 Display a warning message on the default output stream.
int system (const char *const command, const char *const module_name=0)
template<typename T >
T & temporary (const T &)
 Return a reference to a temporary variable of type T.
template<typename T >
void swap (T &a, T &b)
 Exchange values of variables a and b.
template<typename T1 , typename T2 >
void swap (T1 &a1, T1 &b1, T2 &a2, T2 &b2)
 Exchange values of variables (a1,a2) and (b1,b2).
template<typename T1 , typename T2 , typename T3 >
void swap (T1 &a1, T1 &b1, T2 &a2, T2 &b2, T3 &a3, T3 &b3)
 Exchange values of variables (a1,a2,a3) and (b1,b2,b3).
template<typename T1 , typename T2 , typename T3 , typename T4 >
void swap (T1 &a1, T1 &b1, T2 &a2, T2 &b2, T3 &a3, T3 &b3, T4 &a4, T4 &b4)
 Exchange values of variables (a1,a2,...,a4) and (b1,b2,...,b4).
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
void swap (T1 &a1, T1 &b1, T2 &a2, T2 &b2, T3 &a3, T3 &b3, T4 &a4, T4 &b4, T5 &a5, T5 &b5)
 Exchange values of variables (a1,a2,...,a5) and (b1,b2,...,b5).
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
void swap (T1 &a1, T1 &b1, T2 &a2, T2 &b2, T3 &a3, T3 &b3, T4 &a4, T4 &b4, T5 &a5, T5 &b5, T6 &a6, T6 &b6)
 Exchange values of variables (a1,a2,...,a6) and (b1,b2,...,b6).
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
void swap (T1 &a1, T1 &b1, T2 &a2, T2 &b2, T3 &a3, T3 &b3, T4 &a4, T4 &b4, T5 &a5, T5 &b5, T6 &a6, T6 &b6, T7 &a7, T7 &b7)
 Exchange values of variables (a1,a2,...,a7) and (b1,b2,...,b7).
template<typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
void swap (T1 &a1, T1 &b1, T2 &a2, T2 &b2, T3 &a3, T3 &b3, T4 &a4, T4 &b4, T5 &a5, T5 &b5, T6 &a6, T6 &b6, T7 &a7, T7 &b7, T8 &a8, T8 &b8)
 Exchange values of variables (a1,a2,...,a8) and (b1,b2,...,b8).
bool endianness ()
 Return the endianness of the current architecture.
template<typename T >
void invert_endianness (T *const buffer, const unsigned long size)
 Reverse endianness of all elements in a memory buffer.
template<typename T >
T & invert_endianness (T &a)
 Reverse endianness of a single variable.
unsigned long time ()
 Return the value of a system timer, with a millisecond precision.
unsigned long tic ()
 Start tic/toc timer for time measurement between code instructions.
unsigned long toc ()
 End tic/toc timer and displays elapsed time from last call to tic().
void sleep (const unsigned int milliseconds)
 Sleep for a given numbers of milliseconds.
unsigned int wait (const unsigned int milliseconds)
 Wait for a given number of milliseconds since the last call to wait().
double rand ()
 Return a random variable between [0,1] with respect to an uniform distribution.
double crand ()
 Return a random variable between [-1,1] with respect to an uniform distribution.
double grand ()
 Return a random variable following a gaussian distribution and a standard deviation of 1.
unsigned int prand (const double z)
 Return a random variable following a Poisson distribution of parameter z.
template<typename T >
rol (const T a, const unsigned int n=1)
 Bitwise-rotate value on the left.
template<typename T >
ror (const T a, const unsigned int n=1)
 Bitwise-rotate value on the right.
template<typename T >
abs (const T a)
 Return absolute value of a value.
template<typename T >
sqr (const T val)
 Return square of a value.
int xln (const int x)
 Return 1 + log_10(x) of a value x.
template<typename t1 , typename t2 >
cimg::superset< t1, t2 >::type min (const t1 &a, const t2 &b)
 Return the minimum between two values.
template<typename t1 , typename t2 , typename t3 >
cimg::superset2< t1, t2, t3 >::type min (const t1 &a, const t2 &b, const t3 &c)
 Return the minimum between three values.
template<typename t1 , typename t2 , typename t3 , typename t4 >
cimg::superset3< t1, t2, t3,
t4 >::type 
min (const t1 &a, const t2 &b, const t3 &c, const t4 &d)
 Return the minimum between four values.
template<typename t1 , typename t2 >
cimg::superset< t1, t2 >::type max (const t1 &a, const t2 &b)
 Return the maximum between two values.
template<typename t1 , typename t2 , typename t3 >
cimg::superset2< t1, t2, t3 >::type max (const t1 &a, const t2 &b, const t3 &c)
 Return the maximum between three values.
template<typename t1 , typename t2 , typename t3 , typename t4 >
cimg::superset3< t1, t2, t3,
t4 >::type 
max (const t1 &a, const t2 &b, const t3 &c, const t4 &d)
 Return the maximum between four values.
template<typename T >
sign (const T x)
 Return the sign of a value.
template<typename T >
unsigned int nearest_pow2 (const T x)
 Return the nearest power of 2 higher than given value.
double sinc (const double x)
 Return the sinc of a given value.
template<typename T >
mod (const T &x, const T &m)
 Return the modulo of a value.
template<typename T >
minmod (const T a, const T b)
 Return the min-mod of two values.
double log2 (const double x)
 Return base-2 logarithm of a value.
template<typename T >
round (const T x, const double y=1, const int rounding_type=0)
 Return rounded value.
char uncase (const char x)
 Convert ascii character to lower case.
void uncase (char *const str)
 Convert C-string to lower case.
double atof (const char *const str)
 Read value in a C-string.
int strncasecmp (const char *const str1, const char *const str2, const int l)
 Compare the first l characters of two C-strings, ignoring the case.
int strcasecmp (const char *const str1, const char *const str2)
 Compare two C-strings, ignoring the case.
bool strpare (char *const str, const char delimiter=' ', const bool is_symmetric=false, const bool is_iterative=false)
 Remove delimiters on the start and/or end of a C-string.
void strescape (char *const str)
 Replace escape sequences in C-strings by their binary ascii values.
const char * basename (const char *const str)
 Return the basename of a filename.
std::FILE * fopen (const char *const path, const char *const mode)
 Open a file.
int fclose (std::FILE *file)
 Close a file.
const char * temporary_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to store temporary files.
const char * imagemagick_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to the Program Files/ directory (Windows only).
const char * graphicsmagick_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to the GraphicsMagick's gm binary.
const char * medcon_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to the XMedcon's medcon binary.
const char * ffmpeg_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to the FFMPEG's ffmpeg binary.
const char * gzip_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to the gzip binary.
const char * gunzip_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to the gzip binary.
const char * dcraw_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to the dcraw binary.
const char * wget_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to the wget binary.
const char * curl_path (const char *const user_path=0, const bool reinit_path=false)
 Get/set path to the curl binary.
const char * split_filename (const char *const filename, char *const body=0)
 Split filename into two C-strings body and extension.
char * number_filename (const char *const filename, const int number, const unsigned int n, char *const str)
 Generate a numbered version of a filename.
const char * file_type (std::FILE *const file, const char *const filename)
 Try to guess format from an image file.
template<typename T >
int fread (T *const ptr, const unsigned long nmemb, std::FILE *stream)
 Read data from file.
template<typename T >
int fwrite (const T *ptr, const unsigned long nmemb, std::FILE *stream)
 Write data to file.
char * load_network_external (const char *const filename, char *const filename_local)
 Load file from network as a local temporary file.
const char * option (const char *const name, const int argc, const char *const *const argv, const char *const defaut, const char *const usage, const bool reset_static)
 Return options specified on the command line.
template<typename t >
int dialog (const char *const title, const char *const msg, const char *const button1_label, const char *const button2_label, const char *const button3_label, const char *const button4_label, const char *const button5_label, const char *const button6_label, const CImg< t > &logo, const bool is_centered=false)
 Display a simple dialog box, and wait for the user's response.

Variables

const unsigned int keyESC = 1U
 Keycode for the ESC key (architecture-dependent).
const unsigned int keyF1 = 2U
 Keycode for the F1 key (architecture-dependent).
const unsigned int keyF2 = 3U
 Keycode for the F2 key (architecture-dependent).
const unsigned int keyF3 = 4U
 Keycode for the F3 key (architecture-dependent).
const unsigned int keyF4 = 5U
 Keycode for the F4 key (architecture-dependent).
const unsigned int keyF5 = 6U
 Keycode for the F5 key (architecture-dependent).
const unsigned int keyF6 = 7U
 Keycode for the F6 key (architecture-dependent).
const unsigned int keyF7 = 8U
 Keycode for the F7 key (architecture-dependent).
const unsigned int keyF8 = 9U
 Keycode for the F8 key (architecture-dependent).
const unsigned int keyF9 = 10U
 Keycode for the F9 key (architecture-dependent).
const unsigned int keyF10 = 11U
 Keycode for the F10 key (architecture-dependent).
const unsigned int keyF11 = 12U
 Keycode for the F11 key (architecture-dependent).
const unsigned int keyF12 = 13U
 Keycode for the F12 key (architecture-dependent).
const unsigned int keyPAUSE = 14U
 Keycode for the PAUSE key (architecture-dependent).
const unsigned int key1 = 15U
 Keycode for the 1 key (architecture-dependent).
const unsigned int key2 = 16U
 Keycode for the 2 key (architecture-dependent).
const unsigned int key3 = 17U
 Keycode for the 3 key (architecture-dependent).
const unsigned int key4 = 18U
 Keycode for the 4 key (architecture-dependent).
const unsigned int key5 = 19U
 Keycode for the 5 key (architecture-dependent).
const unsigned int key6 = 20U
 Keycode for the 6 key (architecture-dependent).
const unsigned int key7 = 21U
 Keycode for the 7 key (architecture-dependent).
const unsigned int key8 = 22U
 Keycode for the 8 key (architecture-dependent).
const unsigned int key9 = 23U
 Keycode for the 9 key (architecture-dependent).
const unsigned int key0 = 24U
 Keycode for the 0 key (architecture-dependent).
const unsigned int keyBACKSPACE = 25U
 Keycode for the BACKSPACE key (architecture-dependent).
const unsigned int keyINSERT = 26U
 Keycode for the INSERT key (architecture-dependent).
const unsigned int keyHOME = 27U
 Keycode for the HOME key (architecture-dependent).
const unsigned int keyPAGEUP = 28U
 Keycode for the PAGEUP key (architecture-dependent).
const unsigned int keyTAB = 29U
 Keycode for the TAB key (architecture-dependent).
const unsigned int keyQ = 30U
 Keycode for the Q key (architecture-dependent).
const unsigned int keyW = 31U
 Keycode for the W key (architecture-dependent).
const unsigned int keyE = 32U
 Keycode for the E key (architecture-dependent).
const unsigned int keyR = 33U
 Keycode for the R key (architecture-dependent).
const unsigned int keyT = 34U
 Keycode for the T key (architecture-dependent).
const unsigned int keyY = 35U
 Keycode for the Y key (architecture-dependent).
const unsigned int keyU = 36U
 Keycode for the U key (architecture-dependent).
const unsigned int keyI = 37U
 Keycode for the I key (architecture-dependent).
const unsigned int keyO = 38U
 Keycode for the O key (architecture-dependent).
const unsigned int keyP = 39U
 Keycode for the P key (architecture-dependent).
const unsigned int keyDELETE = 40U
 Keycode for the DELETE key (architecture-dependent).
const unsigned int keyEND = 41U
 Keycode for the END key (architecture-dependent).
const unsigned int keyPAGEDOWN = 42U
 Keycode for the PAGEDOWN key (architecture-dependent).
const unsigned int keyCAPSLOCK = 43U
 Keycode for the CAPSLOCK key (architecture-dependent).
const unsigned int keyA = 44U
 Keycode for the A key (architecture-dependent).
const unsigned int keyS = 45U
 Keycode for the S key (architecture-dependent).
const unsigned int keyD = 46U
 Keycode for the D key (architecture-dependent).
const unsigned int keyF = 47U
 Keycode for the F key (architecture-dependent).
const unsigned int keyG = 48U
 Keycode for the G key (architecture-dependent).
const unsigned int keyH = 49U
 Keycode for the H key (architecture-dependent).
const unsigned int keyJ = 50U
 Keycode for the J key (architecture-dependent).
const unsigned int keyK = 51U
 Keycode for the K key (architecture-dependent).
const unsigned int keyL = 52U
 Keycode for the L key (architecture-dependent).
const unsigned int keyENTER = 53U
 Keycode for the ENTER key (architecture-dependent).
const unsigned int keySHIFTLEFT = 54U
 Keycode for the SHIFTLEFT key (architecture-dependent).
const unsigned int keyZ = 55U
 Keycode for the Z key (architecture-dependent).
const unsigned int keyX = 56U
 Keycode for the X key (architecture-dependent).
const unsigned int keyC = 57U
 Keycode for the C key (architecture-dependent).
const unsigned int keyV = 58U
 Keycode for the V key (architecture-dependent).
const unsigned int keyB = 59U
 Keycode for the B key (architecture-dependent).
const unsigned int keyN = 60U
 Keycode for the N key (architecture-dependent).
const unsigned int keyM = 61U
 Keycode for the M key (architecture-dependent).
const unsigned int keySHIFTRIGHT = 62U
 Keycode for the SHIFTRIGHT key (architecture-dependent).
const unsigned int keyARROWUP = 63U
 Keycode for the ARROWUP key (architecture-dependent).
const unsigned int keyCTRLLEFT = 64U
 Keycode for the CTRLLEFT key (architecture-dependent).
const unsigned int keyAPPLEFT = 65U
 Keycode for the APPLEFT key (architecture-dependent).
const unsigned int keyALT = 66U
 Keycode for the ALT key (architecture-dependent).
const unsigned int keySPACE = 67U
 Keycode for the SPACE key (architecture-dependent).
const unsigned int keyALTGR = 68U
 Keycode for the ALTGR key (architecture-dependent).
const unsigned int keyAPPRIGHT = 69U
 Keycode for the APPRIGHT key (architecture-dependent).
const unsigned int keyMENU = 70U
 Keycode for the MENU key (architecture-dependent).
const unsigned int keyCTRLRIGHT = 71U
 Keycode for the CTRLRIGHT key (architecture-dependent).
const unsigned int keyARROWLEFT = 72U
 Keycode for the ARROWLEFT key (architecture-dependent).
const unsigned int keyARROWDOWN = 73U
 Keycode for the ARROWDOWN key (architecture-dependent).
const unsigned int keyARROWRIGHT = 74U
 Keycode for the ARROWRIGHT key (architecture-dependent).
const unsigned int keyPAD0 = 75U
 Keycode for the PAD0 key (architecture-dependent).
const unsigned int keyPAD1 = 76U
 Keycode for the PAD1 key (architecture-dependent).
const unsigned int keyPAD2 = 77U
 Keycode for the PAD2 key (architecture-dependent).
const unsigned int keyPAD3 = 78U
 Keycode for the PAD3 key (architecture-dependent).
const unsigned int keyPAD4 = 79U
 Keycode for the PAD4 key (architecture-dependent).
const unsigned int keyPAD5 = 80U
 Keycode for the PAD5 key (architecture-dependent).
const unsigned int keyPAD6 = 81U
 Keycode for the PAD6 key (architecture-dependent).
const unsigned int keyPAD7 = 82U
 Keycode for the PAD7 key (architecture-dependent).
const unsigned int keyPAD8 = 83U
 Keycode for the PAD8 key (architecture-dependent).
const unsigned int keyPAD9 = 84U
 Keycode for the PAD9 key (architecture-dependent).
const unsigned int keyPADADD = 85U
 Keycode for the PADADD key (architecture-dependent).
const unsigned int keyPADSUB = 86U
 Keycode for the PADSUB key (architecture-dependent).
const unsigned int keyPADMUL = 87U
 Keycode for the PADMUL key (architecture-dependent).
const unsigned int keyPADDIV = 88U
 Keycode for the PADDDIV key (architecture-dependent).
const double PI = 3.14159265358979323846
 Value of the mathematical constant PI.

Detailed Description

Contains low-level functions and variables of the CImg Library.

Most of the functions and variables within this namespace are used by the CImg library for low-level operations. You may use them to access specific const values or environment variables internally used by CImg.

Warning:
Never write using namespace cimg_library::cimg; in your source code. Lot of functions in the cimg:: namespace have the same names as standard C functions that may be defined in the global namespace ::.

Function Documentation

std::FILE * output ( std::FILE *  file)

Get/set default output stream for the CImg library messages.

Parameters:
fileDesired output stream. Set to 0 to get the currently used output stream only.
Returns:
Currently used output stream.
void info ( )

Print informations about CImg environement variables.

Note:
Output is done on the default output stream.
unsigned int& cimg_library::cimg::exception_mode ( const unsigned int  mode)

Set current CImg exception mode.

The way error messages are handled by CImg can be changed dynamically, using this function.

Parameters:
modeDesired exception mode. Possible values are :
  • 0 : Hide library messages (quiet mode).
  • 1 : Print library messages on the console.
  • 2 : Display library messages on a dialog window (default behavior).
  • 3 : Do as 1 + add extra debug warnings (slow down the code !).
  • 4 : Do as 2 + add extra debug warnings (slow down the code !).

Return current CImg exception mode.

Note:
By default, return the value of configuration macro cimg_verbosity
double eval ( const char *const  expression,
const double  x,
const double  y,
const double  z,
const double  c 
)

Evaluate math expression.

Parameters:
expressionC-string describing the formula to evaluate.
xValue of the pre-defined variable x.
yValue of the pre-defined variable y.
zValue of the pre-defined variable z.
cValue of the pre-defined variable c.
Returns:
Result of the formula evaluation.
Note:
Set expression to 0 to keep evaluating the last specified expression.
Example
     const double
       res1 = cimg::eval("cos(x)^2+sin(y)^2",2,2),  // will return '1'.
       res2 = cimg::eval(0,1,1);                    // will return '1' too.
void cimg_library::cimg::warn ( const char *const  format,
  ... 
)

Display a warning message on the default output stream.

Parameters:
formatC-string containing the format of the message, as with std::printf().
Note:
If configuration macro cimg_strict_warnings is set, this function throws a CImgWarningException instead.
Warning:
As the first argument is a format string, it is highly recommended to write
       cimg::warn("%s",warning_message);
instead of
       cimg::warn(warning_message);
if warning_message can be arbitrary, to prevent nasty memory access.
int cimg_library::cimg::system ( const char *const  command,
const char *const  module_name = 0 
)
Parameters:
commandC-string containing the command line to execute.
module_nameModule name.
Returns:
Status value of the executed command, whose meaning is OS-dependent.
Note:
This function is similar to std::system() but it does not open an extra console windows on Windows-based systems.

Return the endianness of the current architecture.

Returns:
false for Little Endian or true for Big Endian.
void cimg_library::cimg::invert_endianness ( T *const  buffer,
const unsigned long  size 
)

Reverse endianness of all elements in a memory buffer.

Parameters:
[in,out]bufferMemory buffer whose endianness must be reversed.
sizeNumber of buffer elements to reverse.

Reverse endianness of a single variable.

Parameters:
[in,out]aVariable to reverse.
Returns:
Reference to reversed variable.
unsigned long cimg_library::cimg::time ( )

Return the value of a system timer, with a millisecond precision.

Note:
The timer does not necessarily starts from 0.
unsigned long cimg_library::cimg::tic ( )

Start tic/toc timer for time measurement between code instructions.

Returns:
Current value of the timer (same value as time()).
unsigned long cimg_library::cimg::toc ( )

End tic/toc timer and displays elapsed time from last call to tic().

Returns:
Time elapsed (in ms) since last call to tic().
void cimg_library::cimg::sleep ( const unsigned int  milliseconds)

Sleep for a given numbers of milliseconds.

Parameters:
millisecondsNumber of milliseconds to wait for.
Note:
This function frees the CPU ressources during the sleeping time. It can be used to temporize your program properly, without wasting CPU time.
unsigned int cimg_library::cimg::wait ( const unsigned int  milliseconds)

Wait for a given number of milliseconds since the last call to wait().

Parameters:
millisecondsNumber of milliseconds to wait for.
Returns:
Number of milliseconds elapsed since the last call to wait().
Note:
Same as sleep() with a waiting time computed with regard to the last call of wait(). It may be used to temporize your program properly, without wasting CPU time.
T cimg_library::cimg::mod ( const T &  x,
const T &  m 
)

Return the modulo of a value.

Parameters:
xInput value.
mModulo value.
Note:
This modulo function accepts negative and floating-points modulo numbers, as well as variables of any type.
T cimg_library::cimg::minmod ( const T  a,
const T  b 
)

Return the min-mod of two values.

Note:
minmod(a,b) is defined to be :
  • minmod(a,b) = min(a,b), if a and b have the same sign.
  • minmod(a,b) = 0, if a and b have different signs.
T cimg_library::cimg::round ( const T  x,
const double  y = 1,
const int  rounding_type = 0 
)

Return rounded value.

Parameters:
xValue to be rounded.
yRounding precision.
rounding_typeType of rounding operation (0 = nearest, -1 = backward, 1 = forward).
Returns:
Rounded value, having the same type as input value x.
double cimg_library::cimg::atof ( const char *const  str)

Read value in a C-string.

Parameters:
strC-string containing the float value to read.
Returns:
Read value.
Note:
Same as std::atof() extended to manage the retrieval of fractions from C-strings, as in "1/2".
int cimg_library::cimg::strncasecmp ( const char *const  str1,
const char *const  str2,
const int  l 
)

Compare the first l characters of two C-strings, ignoring the case.

Parameters:
str1C-string.
str2C-string.
lNumber of characters to compare.
Returns:
0 if the two strings are equal, something else otherwise.
Note:
This function has to be defined since it is not provided by all C++-compilers (not ANSI).
int cimg_library::cimg::strcasecmp ( const char *const  str1,
const char *const  str2 
)

Compare two C-strings, ignoring the case.

Parameters:
str1C-string.
str2C-string.
Returns:
0 if the two strings are equal, something else otherwise.
Note:
This function has to be defined since it is not provided by all C++-compilers (not ANSI).
bool cimg_library::cimg::strpare ( char *const  str,
const char  delimiter = ' ',
const bool  is_symmetric = false,
const bool  is_iterative = false 
)

Remove delimiters on the start and/or end of a C-string.

Parameters:
[in,out]strC-string to work with (modified at output).
delimiterDelimiter character code to remove.
is_symmetricTells if the removal is done only if delimiters are symmetric (both at the beginning and the end of s).
is_iterativeTells if the removal is done if several iterations are possible.
Returns:
true if delimiters have been removed, false otherwise.
void cimg_library::cimg::strescape ( char *const  str)

Replace escape sequences in C-strings by their binary ascii values.

Parameters:
[in,out]strC-string to work with (modified at output).
std::FILE* cimg_library::cimg::fopen ( const char *const  path,
const char *const  mode 
)

Open a file.

Parameters:
pathPath of the filename to open.
modeC-string describing the opening mode.
Returns:
Opened file.
Note:
Same as std::fopen() but throw a CImgIOException when the specified file cannot be opened, instead of returning 0.
int cimg_library::cimg::fclose ( std::FILE *  file)

Close a file.

Parameters:
fileFile to close.
Returns:
0 if file has been closed properly, something else otherwise.
Note:
Same as std::fclose() but display a warning message if the file has not been closed properly.
const char* cimg_library::cimg::temporary_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to store temporary files.

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path where temporary files can be saved.
const char* cimg_library::cimg::imagemagick_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to the Program Files/ directory (Windows only).

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the program files. Get/set path to the ImageMagick's convert binary.
Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the convert binary.
const char* cimg_library::cimg::graphicsmagick_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to the GraphicsMagick's gm binary.

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the gm binary.
const char* cimg_library::cimg::medcon_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to the XMedcon's medcon binary.

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the medcon binary.
const char* cimg_library::cimg::ffmpeg_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to the FFMPEG's ffmpeg binary.

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the ffmpeg binary.
const char* cimg_library::cimg::gzip_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to the gzip binary.

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the gzip binary.
const char* cimg_library::cimg::gunzip_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to the gzip binary.

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the gunzip binary.
const char* cimg_library::cimg::dcraw_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to the dcraw binary.

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the dcraw binary.
const char* cimg_library::cimg::wget_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to the wget binary.

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the wget binary.
const char* cimg_library::cimg::curl_path ( const char *const  user_path = 0,
const bool  reinit_path = false 
)

Get/set path to the curl binary.

Parameters:
user_pathSpecified path, or 0 to get the path currently used.
reinit_pathForce path to be recalculated (may take some time).
Returns:
Path containing the curl binary.
const char* cimg_library::cimg::file_type ( std::FILE *const  file,
const char *const  filename 
)

Try to guess format from an image file.

Parameters:
fileInput file (can be 0 if filename is set).
filenameFilename, as a C-string (can be 0 if file is set).
Returns:
C-string containing the guessed file format, or 0 if nothing has been guessed.
int cimg_library::cimg::fread ( T *const  ptr,
const unsigned long  nmemb,
std::FILE *  stream 
)

Read data from file.

Parameters:
[out]ptrPointer to memory buffer that will contain the binary data read from file.
nmembNumber of elements to read.
streamFile to read data from.
Returns:
Number of read elements.
Note:
Same as std::fread() but may display warning message if all elements could not be read.
int cimg_library::cimg::fwrite ( const T *  ptr,
const unsigned long  nmemb,
std::FILE *  stream 
)

Write data to file.

Parameters:
ptrPointer to memory buffer containing the binary data to write on file.
nmembNumber of elements to write.
[out]streamFile to write data on.
Returns:
Number of written elements.
Note:
Similar to std::fwrite but may display warning messages if all elements could not be written.
char* cimg_library::cimg::load_network_external ( const char *const  filename,
char *const  filename_local 
)

Load file from network as a local temporary file.

Parameters:
filenameFilename, as a C-string.
[out]filename_localC-string containing the path to a local copy of filename.
Returns:
Value of filename_local.
Note:
Use external binaries wget or curl to perform. You must have one of these tools installed to be able to use this function.
int cimg_library::cimg::dialog ( const char *const  title,
const char *const  msg,
const char *const  button1_label,
const char *const  button2_label,
const char *const  button3_label,
const char *const  button4_label,
const char *const  button5_label,
const char *const  button6_label,
const CImg< t > &  logo,
const bool  is_centered = false 
)

Display a simple dialog box, and wait for the user's response.

Parameters:
titleTitle of the dialog window.
msgMain message displayed inside the dialog window.
button1_labelLabel of the 1st button.
button2_labelLabel of the 2nd button (0 to hide button).
button3_labelLabel of the 3rd button (0 to hide button).
button4_labelLabel of the 4th button (0 to hide button).
button5_labelLabel of the 5th button (0 to hide button).
button6_labelLabel of the 6th button (0 to hide button).
logoImage logo displayed at the left of the main message.
is_centeredTells if the dialog window must be centered on the screen.
Returns:
Indice of clicked button (from 0 to 5), or -1 if the dialog window has been closed by the user.
Note:
  • Up to 6 buttons can be defined in the dialog window.
  • The function returns when a user clicked one of the button or closed the dialog window.
  • If a button text is set to 0, the corresponding button (and the followings) will not appear in the dialog box. At least one button must be specified.

Support This Project