You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kimgio
Timothy Pearson 77f4891c22
Fix a number of tdelibs build warnings
13 years ago
..
AUTHORS
CMakeLists.txt
ChangeLog
Mainpage.dox
Makefile.am
README
bmp.kimgio
configure.in.in
dds.cpp Fix a number of tdelibs build warnings 13 years ago
dds.h
dds.kimgio
eps.cpp
eps.h
eps.kimgio
exr.cpp
exr.h
exr.kimgio
g3.kimgio
g3r.cpp
g3r.h
gif.kimgio
gimp.h
hdr.cpp
hdr.h
hdr.kimgio
ico.cpp
ico.h
ico.kimgio
jp2.cpp
jp2.h
jp2.kimgio
jpeg.kimgio
mng.kimgio
pbm.kimgio
pcx.cpp
pcx.h
pcx.kimgio
pgm.kimgio
png.kimgio
ppm.kimgio
psd.cpp
psd.h
psd.kimgio
rgb.cpp
rgb.h
rgb.kimgio
tga.cpp
tga.h
tga.kimgio
tiff.kimgio
tiffr.cpp
tiffr.h
xbm.kimgio
xcf.cpp
xcf.h
xcf.kimgio
xpm.kimgio
xv.kimgio
xview.cpp
xview.h

README

KDE Image I/O library
---------------------
This library allows applications that use the Qt library
(i.e. QImageIO, QImage, QPixmap and friends) to read and
write images in extra formats. Current formats include:

JPEG	<read> <write>
JPEG2000 <read> <write>
XV	<read> <write>
EPS	<read> <write>
NETPBM	<incomplete>
PNG	<read> <write, only with newer libraries>
TIFF	<read>
TGA	<read> <write>
PCX	<read> <write>
SGI	<read> <write>   (images/x-rgb: *.bw, *.rgb, *.rgba, *.sgi)
DDS	<read>
XCF	<read>

(Some example files are in kdenonbeta/kimgio_examples.)


To use these formats, you only need to:

1. link the application with the libkio library
2. Include the <kimageio.h> header
3. call KImageIO::registerFormats() once, somewhere in your code
   before you load an image.

Writing handlers
----------------

0. Please read the documentation for the QImageIO class in the Qt
documentation.

1. When writing handlers, there is a function naming convention;
suppose, for example, we were writing PNG read and write handlers,
we would name them

void kimgio_png_read ( QImageIO * );
void kimgio_png_write( QImageIO * );

ie

kimgio_<format>_<read/write>

This should reduce the chance of identifier clashes with other code.

2. Remember that a given KDE application may try to load dozens of
images at once such as when loading icons, or creating thumbnails.
Also, it may well be loading them over a network connection.
Therefore,

	- Avoid creating temporary files or allocating too much memory
	when decoding and encoding. Especially try to avoid firing off
	external programs.

	- Don't assume that the IODevice which is the source or target
	of the image data is pointing to a file on the local filesystem.
	Use the IODevice methods to read and write image data.

	- Check for file corruption or premature end of the image,
	especially before using values read from the file
	e.g. for memory allocations.

3. If you only have either a reader or the writer for a particular
format, don't use NULL in QImageIO::defineIOHandler. Instead, write
a stub function for the unimplemented handler which displays a message
on standard output. This prevents kimgio-using programs dumping core
when attempting to call the unimplemented handler.


Yours in good faith and pedantry,

Sirtaj Singh Kang <taj@kde.org>, 23 September 1998.