The simplest invocation is:
ccv image.bmp
which will convert image.bmp to image.chr
ccv -mzm image.bmp
will convert image.bmp to image.chr and image.mzm.
These are partial charsets, unless the image supplied is 256x112 (the size of MZX's charset) or some other dimensions that require 256 chars. If you want to convert a larger image, be sure to use at least -c 256, although you may require lower values if you want to use -exclude or -offset.
Currently the only image files supported are monochrome 8-bit raws and BMP images.
It also contains a number of other features described somewhat here:
Quote
ccv input.bmp
.. converts input.bmp to input.chr. The conversion will convert the image to a charset or partial charset containing a quantised representation of the image. No char reuse will be done.
ccv input.bmp -mzm
.. converts input.bmp to input.chr and input.mzm. If the same character would have been used multiple times, it will be reused. Hence while the .chr itself may not match the input image, the combination of the .chr and .mzm will.
ccv input.bmp -reuse
.. converts input.bmp to input.chr, reusing chars where possible. This option is implied with -mzm, but can be used for simple charset output with this.
ccv input.bmp -mzm -noreuse
.. converts input.bmp to input.chr and input.mzm without reusing characters.
ccv input.bmp -o output
.. converts input.bmp to output.chr
ccv input.bmp -mzm -o output
.. converts input.bmp to output.chr and output.mzm
ccv input1.bmp input2.bmp -mzm
.. converts input1.bmp and input2.bmp to input1.chr, input2.chr, input1.mzm and input2.mzm
ccv -c 30 input.bmp -mzm
.. converts input.bmp to input.chr and input.mzm, with no more than 30 characters used. If necessary, close characters will be reused. -c implies -reuse.
ccv -offset 128 input.bmp -mzm
.. converts input.bmp to input.chr and input.mzm with the char indices in input.mzm being offset by 128 places. Hence loading the charset with load char set "@128input.chr" and placing the MZM should result in accurate graphics.
ccv -exclude 32 input.bmp -mzm
.. converts input.bmp to input.chr and input.mzm. If char #32 would otherwise be used in the conversion, it will be replaced with a blank char instead and will not be referenced in the output -mzm.
ccv -exclude 32-63 input.bmp -mzm
.. converts input.bmp to input.chr and input.mzm. If chars #32 to #63 would otherwise be used in the conversion, they will be replaced with blank chars instead and will not be referenced in the output -mzm.
ccv -exclude 0,32 input.bmp -mzm
.. converts input.bmp to input.chr and input.mzm. If chars #0 or #32 would otherwise be used in the conversion, they will be replaced with blank chars instead and will not be referenced in the output -mzm.
ccv input.raw -w 256 -h 112
.. converts input.raw to input.chr. input.raw is assumed to be an 8-bit headerless image of the dimensions given, where zero is black and nonzero is white.
ccv input.bmp -threshold 160
.. converts input.bmp to input.chr turning pixels >= 160 brightness white and other pixels black. If not supplied, the default is 127.
ccv input.bmp -dither floyd-steinberg
ccv input.bmp -dither stucki
ccv input.bmp -dither jarvis-judice-ninke
ccv input.bmp -dither burkes
ccv input.bmp -dither sierra
ccv input.bmp -dither stevenson-arce
.. converts input.bmp to input.chr using the given error-diffusion kernel. Note that you can abbreviate it (i.e. 'floyd', 'jarvis') as it only has to match part of the name. Note that the -threshold value, if supplied, is still used here.
Source code
Windows (32-bit) executable
Java (1.6) graphical frontend. Put it in the same directory as the executable and run it. It will allow you to work more interactively and use more file formats as input.