~ubuntu-branches/ubuntu/dapper/tk8.0/dapper-updates

« back to all changes in this revision

Viewing changes to doc/CrtPhImgFmt.3

  • Committer: Bazaar Package Importer
  • Author(s): Mike Markley
  • Date: 2001-07-24 21:57:40 UTC
  • Revision ID: james.westby@ubuntu.com-20010724215740-r70t25rtmbqjil2h
Tags: upstream-8.0.5
ImportĀ upstreamĀ versionĀ 8.0.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
'\"
 
2
'\" Copyright (c) 1994 The Australian National University
 
3
'\" Copyright (c) 1994-1997 Sun Microsystems, Inc.
 
4
'\"
 
5
'\" See the file "license.terms" for information on usage and redistribution
 
6
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 
7
'\" 
 
8
'\" Author: Paul Mackerras (paulus@cs.anu.edu.au),
 
9
'\"         Department of Computer Science,
 
10
'\"         Australian National University.
 
11
'\"
 
12
'\" RCS: @(#) $Id: CrtPhImgFmt.3,v 1.2 1998/09/14 18:22:47 stanton Exp $
 
13
'\"
 
14
.so man.macros
 
15
.TH Tk_CreatePhotoImageFormat 3 4.0 Tk "Tk Library Procedures"
 
16
.BS
 
17
.SH NAME
 
18
Tk_CreatePhotoImageFormat \- define new file format for photo images
 
19
.SH SYNOPSIS
 
20
.nf
 
21
\fB#include <tk.h>\fR
 
22
\fB#include <tkPhoto.h>\fR
 
23
.sp
 
24
\fBTk_CreatePhotoImageFormat\fR(\fIformatPtr\fR)
 
25
.SH ARGUMENTS
 
26
.AS Tk_PhotoImageFormat *formatPtr
 
27
.AP Tk_PhotoImageFormat *formatPtr in
 
28
Structure that defines the new file format.
 
29
.BE
 
30
 
 
31
.SH DESCRIPTION
 
32
.PP
 
33
\fBTk_CreatePhotoImageFormat\fR is invoked to define a new file format
 
34
for image data for use with photo images.  The code that implements an
 
35
image file format is called an image file format handler, or
 
36
handler for short.  The photo image code
 
37
maintains a list of handlers that can be used to read and
 
38
write data to or from a file.  Some handlers may also
 
39
support reading image data from a string or converting image data to a
 
40
string format.
 
41
The user can specify which handler to use with the \fB\-format\fR
 
42
image configuration option or the \fB\-format\fR option to the
 
43
\fBread\fR and \fBwrite\fR photo image subcommands.
 
44
.PP
 
45
An image file format handler consists of a collection of procedures
 
46
plus a Tk_PhotoImageFormat structure, which contains the name of the
 
47
image file format and pointers to six procedures provided by the
 
48
handler to deal with files and strings in this format.  The
 
49
Tk_PhotoImageFormat structure contains the following fields:
 
50
.CS
 
51
typedef struct Tk_PhotoImageFormat {
 
52
        char *\fIname\fR;
 
53
        Tk_ImageFileMatchProc *\fIfileMatchProc\fR;
 
54
        Tk_ImageStringMatchProc *\fIstringMatchProc\fR;
 
55
        Tk_ImageFileReadProc *\fIfileReadProc\fR;
 
56
        Tk_ImageStringReadProc *\fIstringReadProc\fR;
 
57
        Tk_ImageFileWriteProc *\fIfileWriteProc\fR;
 
58
        Tk_ImageStringWriteProc *\fIstringWriteProc\fR;
 
59
} Tk_PhotoImageFormat;
 
60
.CE
 
61
.PP
 
62
The handler need not provide implementations of all six procedures.
 
63
For example, the procedures that handle string data would not be
 
64
provided for a format in which the image data are stored in binary,
 
65
and could therefore contain null characters.  If any procedure is not
 
66
implemented, the corresponding pointer in the Tk_PhotoImageFormat
 
67
structure should be set to NULL.  The handler must provide the
 
68
\fIfileMatchProc\fR procedure if it provides the \fIfileReadProc\fR
 
69
procedure, and the \fIstringMatchProc\fR procedure if it provides the
 
70
\fIstringReadProc\fR procedure.
 
71
 
 
72
.SH NAME
 
73
.PP
 
74
\fIformatPtr->name\fR provides a name for the image type.
 
75
Once \fBTk_CreatePhotoImageFormat\fR returns, this name may be used
 
76
in the \fB\-format\fR photo image configuration and subcommand option.
 
77
The manual page for the photo image (photo(n)) describes how image
 
78
file formats are chosen based on their names and the value given to
 
79
the \fB\-format\fR option.
 
80
 
 
81
.SH FILEMATCHPROC
 
82
\fIformatPtr->fileMatchProc\fR provides the address of a procedure for
 
83
Tk to call when it is searching for an image file format handler
 
84
suitable for reading data in a given file.
 
85
\fIformatPtr->fileMatchProc\fR must match the following prototype:
 
86
.CS
 
87
typedef int Tk_ImageFileMatchProc(
 
88
        Tcl_Channel \fIchan\fR,
 
89
        char *\fIfileName\fR,
 
90
        char *\fIformatString\fR,
 
91
        int *\fIwidthPtr\fR,
 
92
        int *\fIheightPtr\fR);
 
93
.CE
 
94
The \fIfileName\fR argument is the name of the file containing the
 
95
image data, which is open for reading as \fIchan\fR.  The
 
96
\fIformatString\fR argument contains the value given for the
 
97
\fB\-format\fR option, or NULL if the option was not specified.
 
98
If the data in the file appears to be in the format supported by this
 
99
handler, the \fIformatPtr->fileMatchProc\fR procedure should store the
 
100
width and height of the image in *\fIwidthPtr\fR and *\fIheightPtr\fR
 
101
respectively, and return 1.  Otherwise it should return 0.
 
102
 
 
103
.SH STRINGMATCHPROC
 
104
\fIformatPtr->stringMatchProc\fR provides the address of a procedure for
 
105
Tk to call when it is searching for an image file format handler for
 
106
suitable for reading data from a given string.
 
107
\fIformatPtr->stringMatchProc\fR must match the following prototype:
 
108
.CS
 
109
typedef int Tk_ImageStringMatchProc(
 
110
        char *\fIstring\fR,
 
111
        char *\fIformatString\fR,
 
112
        int *\fIwidthPtr\fR,
 
113
        int *\fIheightPtr\fR);
 
114
.CE
 
115
The \fIstring\fR argument points to the string containing the image
 
116
data.  The \fIformatString\fR argument contains the value given for
 
117
the \fB\-format\fR option, or NULL if the option was not specified.
 
118
If the data in the string appears to be in the format supported by
 
119
this handler, the \fIformatPtr->stringMatchProc\fR procedure should
 
120
store the width and height of the image in *\fIwidthPtr\fR and
 
121
*\fIheightPtr\fR respectively, and return 1.  Otherwise it should
 
122
return 0.
 
123
 
 
124
.SH FILEREADPROC
 
125
\fIformatPtr->fileReadProc\fR provides the address of a procedure for
 
126
Tk to call to read data from an image file into a photo image.
 
127
\fIformatPtr->fileReadProc\fR must match the following prototype:
 
128
.CS
 
129
typedef int Tk_ImageFileReadProc(
 
130
        Tcl_Interp *\fIinterp\fR,
 
131
        Tcl_Channel \fIchan\fR,
 
132
        char *\fIfileName\fR,
 
133
        char *\fIformatString\fR,
 
134
        PhotoHandle \fIimageHandle\fR,
 
135
        int \fIdestX\fR, int \fIdestY\fR,
 
136
        int \fIwidth\fR, int \fIheight\fR,
 
137
        int \fIsrcX\fR, int \fIsrcY\fR);
 
138
.CE
 
139
The \fIinterp\fR argument is the interpreter in which the command was
 
140
invoked to read the image; it should be used for reporting errors.
 
141
The image data is in the file named \fIfileName\fR, which is open for
 
142
reading as \fIchan\fR.  The \fIformatString\fR argument contains the
 
143
value given for the \fB\-format\fR option, or NULL if the option was
 
144
not specified.  The image data in the file, or a subimage of it, is to
 
145
be read into the photo image identified by the handle
 
146
\fIimageHandle\fR.  The subimage of the data in the file is of
 
147
dimensions \fIwidth\fR x \fIheight\fR and has its top-left corner at
 
148
coordinates (\fIsrcX\fR,\fIsrcY\fR).  It is to be stored in the photo
 
149
image with its top-left corner at coordinates
 
150
(\fIdestX\fR,\fIdestY\fR) using the \fBTk_PhotoPutBlock\fR procedure.
 
151
The return value is a standard Tcl return value.
 
152
 
 
153
.SH STRINGREADPROC
 
154
\fIformatPtr->stringReadProc\fR provides the address of a procedure for
 
155
Tk to call to read data from a string into a photo image.
 
156
\fIformatPtr->stringReadProc\fR must match the following prototype:
 
157
.CS
 
158
typedef int Tk_ImageStringReadProc(
 
159
        Tcl_Interp *\fIinterp\fR,
 
160
        char *\fIstring\fR,
 
161
        char *\fIformatString\fR,
 
162
        PhotoHandle \fIimageHandle\fR,
 
163
        int \fIdestX\fR, int \fIdestY\fR,
 
164
        int \fIwidth\fR, int \fIheight\fR,
 
165
        int \fIsrcX\fR, int \fIsrcY\fR);
 
166
.CE
 
167
The \fIinterp\fR argument is the interpreter in which the command was
 
168
invoked to read the image; it should be used for reporting errors.
 
169
The \fIstring\fR argument points to the image data in string form.
 
170
The \fIformatString\fR argument contains the
 
171
value given for the \fB\-format\fR option, or NULL if the option was
 
172
not specified.  The image data in the string, or a subimage of it, is to
 
173
be read into the photo image identified by the handle
 
174
\fIimageHandle\fR.  The subimage of the data in the string is of
 
175
dimensions \fIwidth\fR x \fIheight\fR and has its top-left corner at
 
176
coordinates (\fIsrcX\fR,\fIsrcY\fR).  It is to be stored in the photo
 
177
image with its top-left corner at coordinates
 
178
(\fIdestX\fR,\fIdestY\fR) using the \fBTk_PhotoPutBlock\fR procedure.
 
179
The return value is a standard Tcl return value.
 
180
 
 
181
.SH FILEWRITEPROC
 
182
\fIformatPtr->fileWriteProc\fR provides the address of a procedure for
 
183
Tk to call to write data from a photo image to a file.
 
184
\fIformatPtr->fileWriteProc\fR must match the following prototype:
 
185
.CS
 
186
typedef int Tk_ImageFileWriteProc(
 
187
        Tcl_Interp *\fIinterp\fR,
 
188
        char *\fIfileName\fR,
 
189
        char *\fIformatString\fR,
 
190
        Tk_PhotoImageBlock *\fIblockPtr\fR);
 
191
.CE
 
192
The \fIinterp\fR argument is the interpreter in which the command was
 
193
invoked to write the image; it should be used for reporting errors.
 
194
The image data to be written are in memory and are described by the
 
195
Tk_PhotoImageBlock structure pointed to by \fIblockPtr\fR; see the
 
196
manual page FindPhoto(3) for details.  The \fIfileName\fR argument
 
197
points to the string giving the name of the file in which to write the
 
198
image data.  The \fIformatString\fR argument contains the
 
199
value given for the \fB\-format\fR option, or NULL if the option was
 
200
not specified.  The format string can contain extra characters
 
201
after the name of the format.  If appropriate, the
 
202
\fIformatPtr->fileWriteProc\fR procedure may interpret these
 
203
characters to specify further details about the image file.
 
204
The return value is a standard Tcl return value.
 
205
 
 
206
.SH STRINGWRITEPROC
 
207
\fIformatPtr->stringWriteProc\fR provides the address of a procedure for
 
208
Tk to call to translate image data from a photo image into a string.
 
209
\fIformatPtr->stringWriteProc\fR must match the following prototype:
 
210
.CS
 
211
typedef int Tk_ImageStringWriteProc(
 
212
        Tcl_Interp *\fIinterp\fR,
 
213
        Tcl_DString *\fIdataPtr\fR,
 
214
        char *\fIformatString\fR,
 
215
        Tk_PhotoImageBlock *\fIblockPtr\fR);
 
216
.CE
 
217
The \fIinterp\fR argument is the interpreter in which the command was
 
218
invoked to convert the image; it should be used for reporting errors.
 
219
The image data to be converted are in memory and are described by the
 
220
Tk_PhotoImageBlock structure pointed to by \fIblockPtr\fR; see the
 
221
manual page FindPhoto(3) for details.  The data for the string
 
222
should be appended to the dynamic string given by \fIdataPtr\fR.
 
223
The \fIformatString\fR argument contains the
 
224
value given for the \fB\-format\fR option, or NULL if the option was
 
225
not specified.  The format string can contain extra characters
 
226
after the name of the format.  If appropriate, the
 
227
\fIformatPtr->stringWriteProc\fR procedure may interpret these
 
228
characters to specify further details about the image file.
 
229
The return value is a standard Tcl return value.
 
230
 
 
231
.SH "SEE ALSO"
 
232
Tk_FindPhoto, Tk_PhotoPutBlock
 
233
 
 
234
.SH KEYWORDS
 
235
photo image, image file