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.
545 lines
12 KiB
545 lines
12 KiB
// This is the SIP interface definition for TQImage, TQImageIO and
|
|
// TQImageTextKeyLang.
|
|
//
|
|
// Copyright (c) 2007
|
|
// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
|
|
//
|
|
// This file is part of PyTQt.
|
|
//
|
|
// This copy of PyTQt is free software; you can redistribute it and/or modify it
|
|
// under the terms of the GNU General Public License as published by the Free
|
|
// Software Foundation; either version 2, or (at your option) any later
|
|
// version.
|
|
//
|
|
// PyTQt is supplied in the hope that it will be useful, but WITHOUT ANY
|
|
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
// details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License along with
|
|
// PyTQt; see the file LICENSE. If not, write to the Free Software Foundation,
|
|
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
|
%ExportedDoc
|
|
<Sect2><Title>TQImage</Title>
|
|
<Para>
|
|
The Python <Literal>==</Literal> and <Literal>!=</Literal> operators are
|
|
supported.
|
|
</Para>
|
|
|
|
<FuncSynopsis>
|
|
<FuncDef><Function>TQImage</Function></FuncDef>
|
|
<ParamDef>const char *<Parameter>xpm</Parameter>[]</ParamDef>
|
|
</FuncSynopsis>
|
|
<Para>
|
|
This takes a list of strings as its parameter.
|
|
</Para>
|
|
|
|
<FuncSynopsis>
|
|
<FuncDef><Function>TQImage</Function></FuncDef>
|
|
<ParamDef>uchar *<Parameter>data</Parameter></ParamDef>
|
|
<ParamDef>int <Parameter>w</Parameter></ParamDef>
|
|
<ParamDef>int <Parameter>h</Parameter></ParamDef>
|
|
<ParamDef>int <Parameter>depth</Parameter></ParamDef>
|
|
<ParamDef>TQRgb *<Parameter>colorTable</Parameter></ParamDef>
|
|
<ParamDef>int <Parameter>numColors</Parameter></ParamDef>
|
|
<ParamDef>Endian <Parameter>bitOrder</Parameter></ParamDef>
|
|
</FuncSynopsis>
|
|
<Para>
|
|
The <Literal>colorTable</Literal> parameter is a list of TQRgb instances or
|
|
None. (TQt v2.1+)
|
|
</Para>
|
|
|
|
<FuncSynopsis>
|
|
<FuncDef>uchar *<Function>bits</Function></FuncDef>
|
|
<ParamDef></ParamDef>
|
|
</FuncSynopsis>
|
|
<Para>
|
|
The return value is a <Literal>sip.voidptr</Literal> object which is only
|
|
useful if passed to another Python module.
|
|
</Para>
|
|
|
|
<FuncSynopsis>
|
|
<FuncDef>TQRgb *<Function>colorTable</Function></FuncDef>
|
|
<ParamDef></ParamDef>
|
|
</FuncSynopsis>
|
|
<Para>
|
|
The return value is a <Literal>sip.voidptr</Literal> object which is only
|
|
useful if passed to another Python module.
|
|
</Para>
|
|
|
|
<FuncSynopsis>
|
|
<FuncDef>TQImage <Function>convertDepthWithPalette</Function></FuncDef>
|
|
<ParamDef>int</ParamDef>
|
|
<ParamDef>TQRgb *<Parameter>p</Parameter></ParamDef>
|
|
<ParamDef>int <Parameter>pc</Parameter></ParamDef>
|
|
<ParamDef>int <Parameter>cf</Parameter> = 0</ParamDef>
|
|
</FuncSynopsis>
|
|
<Para>
|
|
Not implemented.
|
|
</Para>
|
|
|
|
<FuncSynopsis>
|
|
<FuncDef>uchar **<Function>jumpTable</Function></FuncDef>
|
|
<ParamDef></ParamDef>
|
|
</FuncSynopsis>
|
|
<Para>
|
|
The return value is a <Literal>sip.voidptr</Literal> object which is only
|
|
useful if passed to another Python module.
|
|
</Para>
|
|
|
|
<FuncSynopsis>
|
|
<FuncDef>bool <Function>loadFromData</Function></FuncDef>
|
|
<ParamDef>const uchar *<Parameter>buf</Parameter></ParamDef>
|
|
<ParamDef>uint <Parameter>len</Parameter></ParamDef>
|
|
<ParamDef>const char *<Parameter>format</Parameter> = 0</ParamDef>
|
|
<ParamDef>ColorMode <Parameter>mode</Parameter> = Auto</ParamDef>
|
|
</FuncSynopsis>
|
|
<Para>
|
|
<Literal>len</Literal> is derived from <Literal>buf</Literal> and not passed as
|
|
a parameter.
|
|
</Para>
|
|
|
|
<FuncSynopsis>
|
|
<FuncDef>uchar *<Function>scanLine</Function></FuncDef>
|
|
<ParamDef>int <Parameter>i</Parameter></ParamDef>
|
|
</FuncSynopsis>
|
|
<Para>
|
|
The return value is a <Literal>sip.voidptr</Literal> object which is only
|
|
useful if passed to another Python module.
|
|
</Para>
|
|
</Sect2>
|
|
|
|
<Sect2><Title>TQImageIO</Title>
|
|
<FuncSynopsis>
|
|
<FuncDef>static void <Function>defineIOHandler</Function></FuncDef>
|
|
<ParamDef>const char *<Parameter>format</Parameter></ParamDef>
|
|
<ParamDef>const char *<Parameter>header</Parameter></ParamDef>
|
|
<ParamDef>const char *<Parameter>flags</Parameter></ParamDef>
|
|
<ParamDef>image_io_handler <Parameter>read_image</Parameter></ParamDef>
|
|
<ParamDef>image_io_handler <Parameter>write_image</Parameter></ParamDef>
|
|
</FuncSynopsis>
|
|
<Para>
|
|
Not implemented.
|
|
</Para>
|
|
</Sect2>
|
|
|
|
<Sect2><Title>TQImageTextKeyLang</Title>
|
|
<Para>
|
|
<Literal>TQImageTextKeyLang</Literal> is fully implemented.
|
|
</Para>
|
|
</Sect2>
|
|
%End
|
|
|
|
|
|
class TQImage
|
|
{
|
|
%TypeHeaderCode
|
|
#include <tqimage.h>
|
|
%End
|
|
|
|
public:
|
|
enum Endian {
|
|
IgnoreEndian,
|
|
BigEndian,
|
|
LittleEndian
|
|
};
|
|
|
|
TQImage();
|
|
TQImage(int,int,int,int = 0,Endian = IgnoreEndian);
|
|
TQImage(const TQSize &,int,int = 0,Endian = IgnoreEndian);
|
|
%If (- TQt_2_00)
|
|
TQImage(const char *,char * = 0);
|
|
%End
|
|
%If (TQt_2_00 -)
|
|
TQImage(const TQString &,char * = 0);
|
|
%End
|
|
|
|
TQImage(SIP_PYLIST) [(const char **)];
|
|
%MethodCode
|
|
// The Python interface is a list of strings that make up the
|
|
// image.
|
|
|
|
const char **str;
|
|
|
|
if ((str = PyTQt_qt_ListToArray(a0)) == NULL)
|
|
sipIsErr = 1;
|
|
else
|
|
{
|
|
// There is no wrapper class for TQImage.
|
|
|
|
Py_BEGIN_ALLOW_THREADS
|
|
sipCpp = new TQImage(str);
|
|
Py_END_ALLOW_THREADS
|
|
|
|
sipFree((void *)str);
|
|
}
|
|
%End
|
|
|
|
%If (TQt_2_00 -)
|
|
TQImage(const TQByteArray &);
|
|
%End
|
|
|
|
%If (TQt_2_1_0 -)
|
|
TQImage(uchar *,int,int,int,SIP_PYLIST /AllowNone/,int,Endian) [(uchar *,int,int,int,int,TQRgb *,int,Endian)];
|
|
%MethodCode
|
|
// The Python interface takes a list of TQRgb instances.
|
|
|
|
TQRgb *coltab;
|
|
|
|
if (a4 == Py_None)
|
|
coltab = 0;
|
|
else
|
|
{
|
|
int len = PyList_Size(a4);
|
|
|
|
if (a5 > len)
|
|
a5 = len;
|
|
|
|
coltab = new TQRgb[len];
|
|
|
|
PyErr_Clear();
|
|
|
|
for (int i = 0; i < a5; ++i)
|
|
{
|
|
coltab[i] = PyLong_AsUnsignedLong(PyList_GetItem(a4,i));
|
|
|
|
if (PyErr_Occurred())
|
|
{
|
|
delete[] coltab;
|
|
sipIsErr = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!sipIsErr)
|
|
{
|
|
// There is no wrapper class for TQImage.
|
|
|
|
Py_BEGIN_ALLOW_THREADS
|
|
sipCpp = new TQImage(a0,a1,a2,a3,0,a5,(TQImage::Endian)a6);
|
|
|
|
if (coltab)
|
|
{
|
|
// Now set the colours using the TQImage's self
|
|
// allocated colour table. If we had passed in
|
|
// coltab as the colour table then we couldn't
|
|
// have freed it and it would leak.
|
|
for (int i = 0; i < a5; ++i)
|
|
sipCpp -> setColor(i,coltab[i]);
|
|
|
|
delete[] coltab;
|
|
}
|
|
Py_END_ALLOW_THREADS
|
|
}
|
|
%End
|
|
%End
|
|
|
|
TQImage(const TQImage &);
|
|
|
|
bool operator==(const TQImage &) const;
|
|
bool operator!=(const TQImage &) const;
|
|
|
|
void detach();
|
|
TQImage copy() const;
|
|
TQImage copy(int,int,int,int,int = 0) const;
|
|
%If (- TQt_3_0_0)
|
|
TQImage copy(TQRect &) const;
|
|
%End
|
|
%If (TQt_3_0_0 -)
|
|
TQImage copy(const TQRect &) const;
|
|
%End
|
|
%If (TQt_3_1_0 -)
|
|
static TQImage fromMimeSource(const TQString &);
|
|
%End
|
|
bool isNull() const;
|
|
|
|
int width() const;
|
|
int height() const;
|
|
TQSize size() const;
|
|
TQRect rect() const;
|
|
int depth() const;
|
|
int numColors() const;
|
|
Endian bitOrder() const;
|
|
|
|
TQRgb color(int) const;
|
|
void setColor(int,TQRgb);
|
|
void setNumColors(int);
|
|
|
|
bool hasAlphaBuffer() const;
|
|
void setAlphaBuffer(bool);
|
|
|
|
bool allGray() const;
|
|
bool isGrayscale() const;
|
|
|
|
// Actually returns uchar *.
|
|
void *bits() const;
|
|
// Actually returns uchar *.
|
|
void *scanLine(int) const;
|
|
// Actually returns uchar **.
|
|
void *jumpTable() const;
|
|
// Actually returns TQRgb *.
|
|
void *colorTable() const;
|
|
int numBytes() const;
|
|
int bytesPerLine() const;
|
|
|
|
bool create(int,int,int,int = 0,Endian = IgnoreEndian);
|
|
bool create(const TQSize &,int,int = 0,Endian = IgnoreEndian);
|
|
void reset();
|
|
|
|
void fill(uint);
|
|
%If (TQt_2_00 -)
|
|
void invertPixels(bool = 1);
|
|
%End
|
|
|
|
TQImage convertDepth(int) const;
|
|
// TQImage convertDepthWithPalette(int,TQRgb *,int,int = 0) const;
|
|
TQImage convertDepth(int,int) const;
|
|
TQImage convertBitOrder(Endian) const;
|
|
|
|
%If (- TQt_3_0_0)
|
|
TQImage smoothScale(int,int) const;
|
|
%End
|
|
%If (TQt_3_0_0 -)
|
|
enum ScaleMode {
|
|
ScaleFree,
|
|
ScaleMin,
|
|
ScaleMax
|
|
};
|
|
|
|
TQImage smoothScale(int,int,ScaleMode = ScaleFree) const;
|
|
TQImage smoothScale(const TQSize &,ScaleMode = ScaleFree) const;
|
|
TQImage scale(int,int,ScaleMode = ScaleFree) const;
|
|
TQImage scale(const TQSize &,ScaleMode = ScaleFree) const;
|
|
TQImage scaleWidth(int) const;
|
|
TQImage scaleHeight(int) const;
|
|
TQImage xForm(const TQWMatrix &) const;
|
|
%End
|
|
|
|
%If (- TQt_2_00)
|
|
TQImage createAlphaMask(bool = 0) const;
|
|
TQImage createAlphaMask(int) const;
|
|
%End
|
|
%If (TQt_2_00 -)
|
|
TQImage createAlphaMask(int = 0) const;
|
|
%End
|
|
TQImage createHeuristicMask(bool = 1) const;
|
|
%If (TQt_2_00 -)
|
|
TQImage mirror() const;
|
|
%End
|
|
%If (TQt_2_1_0 -)
|
|
TQImage mirror(bool,bool) const;
|
|
%End
|
|
%If (TQt_2_00 -)
|
|
TQImage swapRGB() const;
|
|
%End
|
|
|
|
static Endian systemBitOrder();
|
|
static Endian systemByteOrder();
|
|
|
|
%If (- TQt_2_00)
|
|
static const char *imageFormat(const char *);
|
|
%End
|
|
%If (TQt_2_00 -)
|
|
static const char *imageFormat(const TQString &);
|
|
%End
|
|
static TQStrList inputFormats();
|
|
static TQStrList outputFormats();
|
|
%If (TQt_2_1_0 -)
|
|
static TQStringList inputFormatList();
|
|
static TQStringList outputFormatList();
|
|
%End
|
|
%If (- TQt_2_00)
|
|
bool load(const char *,const char * = 0);
|
|
%End
|
|
%If (TQt_2_00 -)
|
|
bool load(const TQString &,const char * = 0);
|
|
%End
|
|
bool loadFromData(const uchar * /Array/,uint /ArraySize/,
|
|
const char * = 0);
|
|
bool loadFromData(TQByteArray,char * = 0);
|
|
%If (- TQt_2_00)
|
|
bool save(const char *,const char *) const;
|
|
%End
|
|
%If (TQt_2_00 - TQt_3_0_0)
|
|
bool save(const TQString &,const char *) const;
|
|
%End
|
|
%If (TQt_2_2_0 - TQt_3_0_0)
|
|
bool save(const TQString &,const char *,int) const;
|
|
%End
|
|
%If (TQt_3_0_0 -)
|
|
bool save(const TQString &,const char *,int = -1) const;
|
|
%End
|
|
%If (TQt_3_2_0 -)
|
|
bool save(TQIODevice *,const char *,int = -1) const;
|
|
%End
|
|
|
|
bool valid(int,int) const;
|
|
int pixelIndex(int,int) const;
|
|
TQRgb pixel(int,int) const;
|
|
void setPixel(int,int,uint);
|
|
|
|
%If (TQt_2_1_0 -)
|
|
int dotsPerMeterX() const;
|
|
int dotsPerMeterY() const;
|
|
void setDotsPerMeterX(int);
|
|
void setDotsPerMeterY(int);
|
|
TQPoint offset() const;
|
|
void setOffset(const TQPoint &);
|
|
%If (TQt_IMAGE_TEXT)
|
|
TQValueList<TQImageTextKeyLang> textList() const;
|
|
TQStringList textLanguages() const;
|
|
TQStringList textKeys() const;
|
|
TQString text(const char *,const char * = 0) const;
|
|
TQString text(const TQImageTextKeyLang &) const;
|
|
void setText(const char *,const char *,const TQString &);
|
|
%End
|
|
%End
|
|
};
|
|
|
|
|
|
void bitBlt(TQImage *,int,int,const TQImage *,int = 0,int = 0,int = -1,int = -1,
|
|
int = 0);
|
|
|
|
|
|
class TQImageIO
|
|
{
|
|
%TypeHeaderCode
|
|
#include <tqimage.h>
|
|
%End
|
|
|
|
public:
|
|
TQImageIO();
|
|
TQImageIO(TQIODevice *,const char *);
|
|
%If (TQt_2_00 -)
|
|
TQImageIO(const TQString &,const char *);
|
|
%End
|
|
%If (- TQt_2_00)
|
|
TQImageIO(const char *,const char *);
|
|
%End
|
|
|
|
const TQImage &image() const;
|
|
int status() const;
|
|
const char *format() const;
|
|
TQIODevice *ioDevice() const;
|
|
%If (TQt_2_00 -)
|
|
TQString fileName() const;
|
|
%End
|
|
%If (- TQt_2_00)
|
|
const char *fileName() const;
|
|
%End
|
|
%If (TQt_3_0_0 -)
|
|
int quality() const;
|
|
%End
|
|
%If (TQt_2_00 -)
|
|
TQString description() const;
|
|
%End
|
|
%If (- TQt_2_00)
|
|
const char *description() const;
|
|
%End
|
|
const char *parameters() const;
|
|
%If (TQt_3_0_0 -)
|
|
float gamma() const;
|
|
%End
|
|
|
|
void setImage(const TQImage &);
|
|
void setStatus(int);
|
|
void setFormat(const char *);
|
|
void setIODevice(TQIODevice *);
|
|
%If (TQt_2_00 -)
|
|
void setFileName(const TQString &);
|
|
%End
|
|
%If (- TQt_2_00)
|
|
void setFileName(const char *);
|
|
%End
|
|
%If (TQt_3_0_0 -)
|
|
void setQuality(int);
|
|
%End
|
|
%If (TQt_2_00 -)
|
|
void setDescription(const TQString &);
|
|
%End
|
|
%If (- TQt_2_00)
|
|
void setDescription(const char *);
|
|
%End
|
|
void setParameters(const char *);
|
|
%If (TQt_3_0_0 -)
|
|
void setGamma(float);
|
|
%End
|
|
|
|
bool read();
|
|
bool write();
|
|
|
|
static const char *imageFormat(const TQString &);
|
|
static const char *imageFormat(TQIODevice *);
|
|
static TQStrList inputFormats();
|
|
static TQStrList outputFormats();
|
|
|
|
// static void defineIOHandler(const char *,const char *,const char *,
|
|
// image_io_handler,image_io_handler);
|
|
|
|
private:
|
|
TQImageIO(const TQImageIO &);
|
|
};
|
|
|
|
|
|
%If (TQt_2_1_0 -)
|
|
%If (TQt_IMAGE_TEXT)
|
|
|
|
class TQImageTextKeyLang
|
|
{
|
|
%TypeHeaderCode
|
|
#include <tqimage.h>
|
|
%End
|
|
|
|
public:
|
|
TQImageTextKeyLang(const char *,const char *);
|
|
TQImageTextKeyLang();
|
|
|
|
TQCString key;
|
|
TQCString lang;
|
|
};
|
|
|
|
%End
|
|
%End
|
|
|
|
|
|
%ModuleHeaderCode
|
|
const char **PyTQt_qt_ListToArray(PyObject *lst);
|
|
%End
|
|
|
|
|
|
%ModuleCode
|
|
// Convert a list of strings to an array of strings on the heap. Also used by
|
|
// TQPixmap.
|
|
const char **PyTQt_qt_ListToArray(PyObject *lst)
|
|
{
|
|
int nstr;
|
|
const char **str, **sp;
|
|
|
|
nstr = PyList_Size(lst);
|
|
|
|
if ((str = (const char **)sipMalloc(nstr * sizeof (char *))) == NULL)
|
|
return NULL;
|
|
|
|
// Convert the list.
|
|
sp = str;
|
|
|
|
for (int i = 0; i < nstr; ++i)
|
|
{
|
|
char *s;
|
|
|
|
if ((s = PyString_AsString(PyList_GetItem(lst,i))) == NULL)
|
|
{
|
|
sipFree((void *)str);
|
|
return NULL;
|
|
}
|
|
|
|
*sp++ = s;
|
|
}
|
|
|
|
return str;
|
|
}
|
|
%End
|