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
Alex Kent Hajnal 347a546d9d
Adds WebP read support to kimgio
4 months ago
..
AUTHORS
CMakeLists.txt Adds WebP read support to kimgio 4 months ago
ChangeLog
Mainpage.dox
Makefile.am
README
bmp.kimgio
configure.in.in
dds.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
dds.h
dds.kimgio
eps.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
eps.h
eps.kimgio
exr.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
exr.h
exr.kimgio
g3.kimgio
g3r.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
g3r.h
gif.kimgio
gimp.h
hdr.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
hdr.h TQt conversion fixes 14 years ago
hdr.kimgio
ico.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
ico.h
ico.kimgio
jp2.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
jp2.h
jp2.kimgio Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
jpeg.kimgio
mng.kimgio
pbm.kimgio
pcx.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
pcx.h Replace KDE_Q_EXPORT_PLUGIN, KDE_PACKED and KDE_WEAK_SYMBOL with TDE_* equivalent 4 months ago
pcx.kimgio
pgm.kimgio
png.kimgio
ppm.kimgio
psd.cpp
psd.h Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
psd.kimgio
rgb.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
rgb.h
rgb.kimgio
tga.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
tga.h
tga.kimgio
tiff.kimgio
tiffr.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
tiffr.h
webp.cpp Adds WebP read support to kimgio 4 months ago
webp.h Adds WebP read support to kimgio 4 months ago
webp.kimgio Adds WebP read support to kimgio 4 months ago
xbm.kimgio
xcf.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
xcf.h
xcf.kimgio
xpm.kimgio
xv.kimgio
xview.cpp Replace KDE_[NO_]EXPORT with TDE_[NO_]EXPORT 5 months ago
xview.h

README

KDE Image I/O library
---------------------
This library allows applications that use the Qt library
(i.e. QImageIO, TQImage, 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 libtdeio 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.