diff options
author | Timothy Pearson <[email protected]> | 2011-07-10 15:24:15 -0500 |
---|---|---|
committer | Timothy Pearson <[email protected]> | 2011-07-10 15:24:15 -0500 |
commit | bd0f3345a938b35ce6a12f6150373b0955b8dd12 (patch) | |
tree | 7a520322212d48ebcb9fbe1087e7fca28b76185c /doc/html/qimage-h.html | |
download | qt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.tar.gz qt3-bd0f3345a938b35ce6a12f6150373b0955b8dd12.zip |
Add Qt3 development HEAD version
Diffstat (limited to 'doc/html/qimage-h.html')
-rw-r--r-- | doc/html/qimage-h.html | 470 |
1 files changed, 470 insertions, 0 deletions
diff --git a/doc/html/qimage-h.html b/doc/html/qimage-h.html new file mode 100644 index 0000000..19b28ed --- /dev/null +++ b/doc/html/qimage-h.html @@ -0,0 +1,470 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/include/qimage.h:1 --> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>qimage.h Include File</title> +<style type="text/css"><!-- +fn { margin-left: 1cm; text-indent: -1cm; } +a:link { color: #004faf; text-decoration: none } +a:visited { color: #672967; text-decoration: none } +body { background: #ffffff; color: black; } +--></style> +</head> +<body> + +<table border="0" cellpadding="0" cellspacing="0" width="100%"> +<tr bgcolor="#E5E5E5"> +<td valign=center> + <a href="index.html"> +<font color="#004faf">Home</font></a> + | <a href="classes.html"> +<font color="#004faf">All Classes</font></a> + | <a href="mainclasses.html"> +<font color="#004faf">Main Classes</font></a> + | <a href="annotated.html"> +<font color="#004faf">Annotated</font></a> + | <a href="groups.html"> +<font color="#004faf">Grouped Classes</font></a> + | <a href="functions.html"> +<font color="#004faf">Functions</font></a> +</td> +<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>qimage.h</h1> + +<p>This is the verbatim text of the qimage.h include file. It is provided only for illustration; the copyright remains with Trolltech. +<hr> +<pre> +/**************************************************************************** +** $Id: qt/qimage.h 3.3.8 edited Jan 11 14:38 $ +** +** Definition of QImage and QImageIO classes +** +** Created : 950207 +** +** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. +** +** This file is part of the kernel module of the Qt GUI Toolkit. +** +** This file may be used under the terms of the GNU General Public +** License versions 2.0 or 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Alternatively you may (at your option) use any +** later version of the GNU General Public License if such license has +** been publicly approved by Trolltech ASA (or its successors, if any) +** and the KDE Free Qt Foundation. +** +** Please review the following information to ensure GNU General +** Public Licensing requirements will be met: +** http://trolltech.com/products/qt/licenses/licensing/opensource/. +** If you are unsure which license is appropriate for your use, please +** review the following information: +** http://trolltech.com/products/qt/licenses/licensing/licensingoverview +** or contact the sales department at [email protected]. +** +** This file may be used under the terms of the Q Public License as +** defined by Trolltech ASA and appearing in the file LICENSE.QPL +** included in the packaging of this file. Licensees holding valid Qt +** Commercial licenses may use this file in accordance with the Qt +** Commercial License Agreement provided with the Software. +** +** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, +** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted +** herein. +** +**********************************************************************/ + +#ifndef QIMAGE_H +#define QIMAGE_H + +#ifndef QT_H +#include "qpixmap.h" +#include "qstrlist.h" +#include "qstringlist.h" +#endif // QT_H + +class QImageDataMisc; // internal +#ifndef QT_NO_IMAGE_TEXT +class Q_EXPORT QImageTextKeyLang { +public: + QImageTextKeyLang(const char* k, const char* l) : key(k), lang(l) { } + QImageTextKeyLang() { } + + QCString key; + QCString lang; + + bool operator< (const QImageTextKeyLang& other) const + { return key < other.key || key==other.key && lang < other.lang; } + bool operator== (const QImageTextKeyLang& other) const + { return key==other.key && lang==other.lang; } +}; +#endif //QT_NO_IMAGE_TEXT + + +class Q_EXPORT QImage +{ +public: + enum Endian { IgnoreEndian, BigEndian, LittleEndian }; + + QImage(); + QImage( int width, int height, int depth, int numColors=0, + Endian bitOrder=IgnoreEndian ); + QImage( const QSize&, int depth, int numColors=0, + Endian bitOrder=IgnoreEndian ); +#ifndef QT_NO_IMAGEIO + QImage( const QString &fileName, const char* format=0 ); + QImage( const char * const xpm[] ); + QImage( const QByteArray &data ); +#endif + QImage( uchar* data, int w, int h, int depth, + QRgb* colortable, int numColors, + Endian bitOrder ); +#ifdef Q_WS_QWS + QImage( uchar* data, int w, int h, int depth, int pbl, + QRgb* colortable, int numColors, + Endian bitOrder ); +#endif + QImage( const QImage & ); + ~QImage(); + + QImage &operator=( const QImage & ); + QImage &operator=( const QPixmap & ); + bool operator==( const QImage & ) const; + bool operator!=( const QImage & ) const; + void detach(); + QImage copy() const; + QImage copy(int x, int y, int w, int h, int conversion_flags=0) const; + QImage copy(const QRect&) const; +#ifndef QT_NO_MIME + static QImage fromMimeSource( const QString& abs_name ); +#endif + bool isNull() const { return data->bits == 0; } + + int width() const { return data->w; } + int height() const { return data->h; } + QSize size() const { return QSize(data->w,data->h); } + QRect rect() const { return QRect(0,0,data->w,data->h); } + int depth() const { return data->d; } + int numColors() const { return data->ncols; } + Endian bitOrder() const { return (Endian) data->bitordr; } + + QRgb color( int i ) const; + void setColor( int i, QRgb c ); + void setNumColors( int ); + + bool hasAlphaBuffer() const; + void setAlphaBuffer( bool ); + + bool allGray() const; + bool isGrayscale() const; + + uchar *bits() const; + uchar *scanLine( int ) const; + uchar **jumpTable() const; + QRgb *colorTable() const; + int numBytes() const; + int bytesPerLine() const; + +#ifdef Q_WS_QWS + QGfx * graphicsContext(); +#endif + + bool create( int width, int height, int depth, int numColors=0, + Endian bitOrder=IgnoreEndian ); + bool create( const QSize&, int depth, int numColors=0, + Endian bitOrder=IgnoreEndian ); + void reset(); + + void fill( uint pixel ); + void invertPixels( bool invertAlpha = TRUE ); + + QImage convertDepth( int ) const; +#ifndef QT_NO_IMAGE_TRUECOLOR + QImage convertDepthWithPalette( int, QRgb* p, int pc, int cf=0 ) const; +#endif + QImage convertDepth( int, int conversion_flags ) const; + QImage convertBitOrder( Endian ) const; + + enum ScaleMode { + ScaleFree, + ScaleMin, + ScaleMax + }; +#ifndef QT_NO_IMAGE_SMOOTHSCALE + QImage smoothScale( int w, int h, ScaleMode mode=ScaleFree ) const; + QImage smoothScale( const QSize& s, ScaleMode mode=ScaleFree ) const; +#endif +#ifndef QT_NO_IMAGE_TRANSFORMATION + QImage scale( int w, int h, ScaleMode mode=ScaleFree ) const; + QImage scale( const QSize& s, ScaleMode mode=ScaleFree ) const; + QImage scaleWidth( int w ) const; + QImage scaleHeight( int h ) const; + QImage xForm( const QWMatrix &matrix ) const; +#endif + +#ifndef QT_NO_IMAGE_DITHER_TO_1 + QImage createAlphaMask( int conversion_flags=0 ) const; +#endif +#ifndef QT_NO_IMAGE_HEURISTIC_MASK + QImage createHeuristicMask( bool clipTight=TRUE ) const; +#endif +#ifndef QT_NO_IMAGE_MIRROR + QImage mirror() const; + QImage mirror(bool horizontally, bool vertically) const; +#endif + QImage swapRGB() const; + + static Endian systemBitOrder(); + static Endian systemByteOrder(); + +#ifndef QT_NO_IMAGEIO + static const char* imageFormat( const QString &fileName ); + static QStrList inputFormats(); + static QStrList outputFormats(); +#ifndef QT_NO_STRINGLIST + static QStringList inputFormatList(); + static QStringList outputFormatList(); +#endif + bool load( const QString &fileName, const char* format=0 ); + bool loadFromData( const uchar *buf, uint len, + const char *format=0 ); + bool loadFromData( QByteArray data, const char* format=0 ); + bool save( const QString &fileName, const char* format, + int quality=-1 ) const; + bool save( QIODevice * device, const char* format, + int quality=-1 ) const; +#endif //QT_NO_IMAGEIO + + bool valid( int x, int y ) const; + int pixelIndex( int x, int y ) const; + QRgb pixel( int x, int y ) const; + void setPixel( int x, int y, uint index_or_rgb ); + + // Auxiliary data + int dotsPerMeterX() const; + int dotsPerMeterY() const; + void setDotsPerMeterX(int); + void setDotsPerMeterY(int); + QPoint offset() const; + void setOffset(const QPoint&); +#ifndef QT_NO_IMAGE_TEXT + QValueList<QImageTextKeyLang> textList() const; + QStringList textLanguages() const; + QStringList textKeys() const; + QString text(const char* key, const char* lang=0) const; + QString text(const QImageTextKeyLang&) const; + void setText(const char* key, const char* lang, const QString&); +#endif +private: + void init(); + void reinit(); + void freeBits(); + static void warningIndexRange( const char *, int ); + + struct QImageData : public QShared { // internal image data + int w; // image width + int h; // image height + int d; // image depth + int ncols; // number of colors + int nbytes; // number of bytes data + int bitordr; // bit order (1 bit depth) + QRgb *ctbl; // color table + uchar **bits; // image data + bool alpha; // alpha buffer + int dpmx; // dots per meter X (or 0) + int dpmy; // dots per meter Y (or 0) + QPoint offset; // offset in pixels +#ifndef QT_NO_IMAGE_TEXT + QImageDataMisc* misc; // less common stuff +#endif + bool ctbl_mine; // this allocated ctbl + } *data; +#ifndef QT_NO_IMAGE_TEXT + QImageDataMisc& misc() const; +#endif +#ifndef QT_NO_IMAGEIO + bool doImageIO( QImageIO* io, int quality ) const; +#endif + friend Q_EXPORT void bitBlt( QImage* dst, int dx, int dy, + const QImage* src, int sx, int sy, + int sw, int sh, int conversion_flags ); +}; + + +// QImage stream functions + +#if !defined(QT_NO_DATASTREAM) && !defined(QT_NO_IMAGEIO) +Q_EXPORT QDataStream &operator<<( QDataStream &, const QImage & ); +Q_EXPORT QDataStream &operator>>( QDataStream &, QImage & ); +#endif + +#ifndef QT_NO_IMAGEIO +class QIODevice; +typedef void (*image_io_handler)( QImageIO * ); // image IO handler + + +struct QImageIOData; + + +class Q_EXPORT QImageIO +{ +public: + QImageIO(); + QImageIO( QIODevice *ioDevice, const char *format ); + QImageIO( const QString &fileName, const char* format ); + ~QImageIO(); + + + const QImage &image() const { return im; } + int status() const { return iostat; } + const char *format() const { return frmt; } + QIODevice *ioDevice() const { return iodev; } + QString fileName() const { return fname; } + int quality() const; + QString description() const { return descr; } + const char *parameters() const; + float gamma() const; + + void setImage( const QImage & ); + void setStatus( int ); + void setFormat( const char * ); + void setIODevice( QIODevice * ); + void setFileName( const QString & ); + void setQuality( int ); + void setDescription( const QString & ); + void setParameters( const char * ); + void setGamma( float ); + + bool read(); + bool write(); + + static const char* imageFormat( const QString &fileName ); + static const char *imageFormat( QIODevice * ); + static QStrList inputFormats(); + static QStrList outputFormats(); + + static void defineIOHandler( const char *format, + const char *header, + const char *flags, + image_io_handler read_image, + image_io_handler write_image ); + +private: + void init(); + + QImage im; // image + int iostat; // IO status + QCString frmt; // image format + QIODevice *iodev; // IO device + QString fname; // file name + char *params; // image parameters //### change to QImageIOData *d in 3.0 + QString descr; // image description + QImageIOData *d; + +private: // Disabled copy constructor and operator= +#if defined(Q_DISABLE_COPY) + QImageIO( const QImageIO & ); + QImageIO &operator=( const QImageIO & ); +#endif +}; + +#endif //QT_NO_IMAGEIO + +Q_EXPORT void bitBlt( QImage* dst, int dx, int dy, const QImage* src, + int sx=0, int sy=0, int sw=-1, int sh=-1, + int conversion_flags=0 ); + + +/***************************************************************************** + QImage member functions + *****************************************************************************/ + +inline bool QImage::hasAlphaBuffer() const +{ + return data->alpha; +} + +inline uchar *QImage::bits() const +{ + return data->bits ? data->bits[0] : 0; +} + +inline uchar **QImage::jumpTable() const +{ + return data->bits; +} + +inline QRgb *QImage::colorTable() const +{ + return data->ctbl; +} + +inline int QImage::numBytes() const +{ + return data->nbytes; +} + +inline int QImage::bytesPerLine() const +{ + return data->h ? data->nbytes/data->h : 0; +} + +inline QImage QImage::copy(const QRect& r) const +{ + return copy(r.x(), r.y(), r.width(), r.height()); +} + +inline QRgb QImage::color( int i ) const +{ +#if defined(QT_CHECK_RANGE) + if ( i >= data->ncols ) + warningIndexRange( "color", i ); +#endif + return data->ctbl ? data->ctbl[i] : (QRgb)-1; +} + +inline void QImage::setColor( int i, QRgb c ) +{ +#if defined(QT_CHECK_RANGE) + if ( i >= data->ncols ) + warningIndexRange( "setColor", i ); +#endif + if ( data->ctbl ) + data->ctbl[i] = c; +} + +inline uchar *QImage::scanLine( int i ) const +{ +#if defined(QT_CHECK_RANGE) + if ( i >= data->h ) + warningIndexRange( "scanLine", i ); +#endif + return data->bits ? data->bits[i] : 0; +} + +inline int QImage::dotsPerMeterX() const +{ + return data->dpmx; +} + +inline int QImage::dotsPerMeterY() const +{ + return data->dpmy; +} + +inline QPoint QImage::offset() const +{ + return data->offset; +} + + +#endif // QIMAGE_H +</pre> +<!-- eof --> +<p><address><hr><div align=center> +<table width=100% cellspacing=0 border=0><tr> +<td>Copyright © 2007 +<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a> +<td align=right><div align=right>Qt 3.3.8</div> +</table></div></address></body> +</html> |