TDE core libraries
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.
tpearson 374d939d8a Allow kdelibs to function correctly with TQt for Qt4 8 years ago
..
AUTHORS Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
CMakeLists.txt [kdelibs] move "-include tqt.h" directive to CMAKE_CXX_FLAGS; move TQT_CFLAGS_OTHER definitions to main CMakeLists.txt; remove useless defintions 8 years ago
ChangeLog Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
Mainpage.dox Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
Makefile.am kdelibs update to Trinity v3.5.11 9 years ago
README Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
bmp.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
configure.in.in Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
dds.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
dds.h TQt conversion fixes 9 years ago
dds.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
eps.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
eps.h Trinity Qt initial conversion 9 years ago
eps.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
exr.cpp Initial conversion for TQt for Qt4 3.4.0 TP2 8 years ago
exr.h TQt conversion fixes 9 years ago
exr.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
g3.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
g3r.cpp Trinity Qt initial conversion 9 years ago
g3r.h TQt conversion fixes 9 years ago
gif.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
gimp.h Trinity Qt initial conversion 9 years ago
hdr.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
hdr.h TQt conversion fixes 9 years ago
hdr.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
ico.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
ico.h TQt conversion fixes 9 years ago
ico.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
jp2.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
jp2.h TQt conversion fixes 9 years ago
jp2.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
jpeg.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
mng.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
pbm.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
pcx.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
pcx.h Initial conversion for TQt for Qt4 3.4.0 TP2 8 years ago
pcx.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
pgm.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
png.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
ppm.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
psd.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
psd.h TQt conversion fixes 9 years ago
psd.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
rgb.cpp Initial conversion for TQt for Qt4 3.4.0 TP2 8 years ago
rgb.h Initial conversion for TQt for Qt4 3.4.0 TP2 8 years ago
rgb.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
tga.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
tga.h TQt conversion fixes 9 years ago
tga.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
tiff.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
tiffr.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
tiffr.h TQt conversion fixes 9 years ago
xbm.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
xcf.cpp Allow kdelibs to function correctly with TQt for Qt4 8 years ago
xcf.h Initial conversion for TQt for Qt4 3.4.0 TP2 8 years ago
xcf.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
xpm.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
xv.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 10 years ago
xview.cpp Initial conversion for TQt for Qt4 3.4.0 TP2 8 years ago
xview.h TQt conversion fixes 9 years ago

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.