kdefx Library API Documentation

KPixmap Class Reference

Off-screen paint device with extended features. More...

#include <kpixmap.h>

Inheritance diagram for KPixmap:

QPixmap List of all members.

Public Types

enum  ColorMode {
  Auto, Color, Mono, LowColor,
  WebColor
}
enum  GradientMode { Horizontal, Vertical, Diagonal, CrossDiagonal }

Public Member Functions

 KPixmap ()
 ~KPixmap ()
 KPixmap (const QPixmap &pix)
bool convertFromImage (const QImage &img, int conversion_flags)
bool convertFromImage (const QImage &img, ColorMode mode=WebColor)
bool load (const QString &fileName, const char *format, int conversion_flags)
bool load (const QString &fileName, const char *format=0, ColorMode mode=WebColor)
bool checkColorTable (const QImage &image)

Detailed Description

Off-screen paint device with extended features.

KPixmap has two new color modes, WebColor and LowColor, applicable to 8bpp displays.

In WebColor mode all images are dithered to the Netscape palette, even when they have their own color table. WebColor is the default mode for KPixmap so that standard applications can share the Netscape palette across the desktop.

In LowColor mode images are checked to see if their color table matches the KDE icon palette. If the color tables do not match, the images are dithered to a minimal 3x3x3 color cube. LowColor mode can be used to load icons, background images etc. so that components of the desktop which are always present use no more than 40 colors.

Author:
Mark Donohoe (donohoe@kde.org)
Version:
Id
kpixmap.h,v 1.31 2003/10/06 09:07:10 bhards Exp

Definition at line 55 of file kpixmap.h.


Member Enumeration Documentation

enum KPixmap::ColorMode
 

This enumeration provides a color pallete specification.

See also:
KPixmap::convertFromImage(), KPixmap::load()
Enumeration values:
Auto  Convert to monochrome if possible.
Color  Native display depth.
Mono  Monochrome pixmap.
LowColor  3x3x3 color cube (or monochrome)
WebColor  Netscape pallete (or monochrome).

Definition at line 62 of file kpixmap.h.

enum KPixmap::GradientMode
 

This enumeration provides a gradient mode specification.

Definition at line 71 of file kpixmap.h.


Constructor & Destructor Documentation

KPixmap::KPixmap  )  [inline]
 

Constructs a null pixmap.

Definition at line 80 of file kpixmap.h.

KPixmap::~KPixmap  ) 
 

Destructs the pixmap.

### KDE 4: remove

Definition at line 186 of file kpixmap.cpp.

KPixmap::KPixmap const QPixmap pix  ) 
 

Copies the QPixmap pix.

Definition at line 412 of file kpixmap.cpp.


Member Function Documentation

bool KPixmap::convertFromImage const QImage img,
int  conversion_flags
 

Converts an image and sets this pixmap.

The conversion_flags argument is a bitwise-OR from the following choices. The options marked (default) are the choice if no other choice from the list is included (they are zero):

Color/Mono preference

  • WebColor - If the image has depth 1 and contains only black and white pixels then the pixmap becomes monochrome. If the pixmap has a depth of 8 bits per pixel then the Netscape palette is used for the pixmap color table.
  • LowColor - If the image has depth 1 and contains only black and white pixels then the pixmap becomes monochrome. If the pixmap has a depth of 8 bits per pixel and the image does not posess a color table that matches the Icon palette a 3x3x3 color cube is used for the pixmap color table.
  • AutoColor (default) - If the image has depth 1 and contains only black and white pixels, then the pixmap becomes monochrome.
  • ColorOnly - The pixmap is dithered/converted to the native display depth.
  • MonoOnly - The pixmap becomes monochrome. If necessary, it is dithered using the chosen dithering algorithm.
Dithering mode preference, for RGB channels

  • DiffuseDither (default) - A high quality dither.
  • OrderedDither - A faster more ordered dither.
  • ThresholdDither - No dithering, closest color is used.
Dithering mode preference, for alpha channel

  • DiffuseAlphaDither - A high quality dither.
  • OrderedAlphaDither - A faster more ordered dither.
  • ThresholdAlphaDither (default) - No dithering.
Color matching versus dithering preference

  • PreferDither - Always dither 32-bit images when the image is being converted to 8-bits. This is the default when converting to a pixmap.
  • AvoidDither - Only dither 32-bit images if the image has more than 256 colors and it is being converted to 8-bits. This is the default when an image is converted for the purpose of saving to a file.
Passing 0 for conversion_flags gives all the default options.

Parameters:
img the image to convert
conversion_flags bitmask, described above
Returns:
true if successful.

Reimplemented from QPixmap.

Definition at line 249 of file kpixmap.cpp.

References Auto, checkColorTable(), QImage::convertDepth(), convertFromImage(), QImage::createAlphaMask(), QPixmap::defaultDepth(), QPixmap::detach(), QImage::hasAlphaBuffer(), QImage::height(), QImage::isNull(), QImage::numColors(), QImage::setAlphaBuffer(), and QImage::width().

Referenced by KPixmapEffect::blend(), KPixmapEffect::channelIntensity(), KPixmapEffect::contrast(), convertFromImage(), KPixmapEffect::desaturate(), KPixmapEffect::dither(), KPixmapEffect::fade(), KPixmapEffect::gradient(), KPixmapEffect::hash(), KPixmapEffect::intensity(), load(), KPixmapEffect::pattern(), KPixmapEffect::selectedPixmap(), KPixmapEffect::toGray(), and KPixmapEffect::unbalancedGradient().

bool KPixmap::convertFromImage const QImage img,
ColorMode  mode = WebColor
 

This is an overloaded member function, provided for convenience.

It differs from the above function only in what argument(s) it accepts.

Parameters:
img the image to convert
mode a ColorMode to apply
Returns:
true if successful.

Reimplemented from QPixmap.

Definition at line 227 of file kpixmap.cpp.

References Color, convertFromImage(), LowColor, Mono, and WebColor.

bool KPixmap::load const QString fileName,
const char *  format,
int  conversion_flags
 

Loads a pixmap from the file fileName.

If format is specified, the loader attempts to read the pixmap using the specified format. If format is not specified (default), the loader reads a few bytes from the header to guess the file format.

The QImageIO documentation lists the supported image formats and explains how to add extra formats.

Parameters:
fileName the name of the file to load the image from
format the format for the image
conversion_flags a bitmask, as described in convertFromImage()
Returns:
true if successful, or false if the pixmap could not be loaded.

Reimplemented from QPixmap.

Definition at line 190 of file kpixmap.cpp.

References convertFromImage(), QPixmap::detach(), QImageIO::image(), load(), and QImageIO::read().

Referenced by load().

bool KPixmap::load const QString fileName,
const char *  format = 0,
ColorMode  mode = WebColor
 

This is an overloaded member function, provided for convenience.

It differs from the above function only in what argument(s) it accepts.

Parameters:
fileName the name of the file to load the image from
format the format for the image
mode a ColorMode to apply
Returns:
true if successful, or false if the pixmap could not be loaded.

Reimplemented from QPixmap.

Definition at line 204 of file kpixmap.cpp.

References Color, load(), LowColor, Mono, and WebColor.

bool KPixmap::checkColorTable const QImage image  ) 
 

Returns true if the image posesses a color table that matches the Icon palette or false otherwise.

An image with one color not found in the Icon palette is considered to be a match, since this extra color may be a transparent background.

Parameters:
image the image to test

Definition at line 317 of file kpixmap.cpp.

References QColor::blue(), checkColorTable(), QImage::colorTable(), QColor::green(), QImage::numColors(), and QColor::red().

Referenced by checkColorTable(), and convertFromImage().


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for kdefx Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 20 09:48:15 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003