1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
--- trunk/amsn/utils/TkCximage/src/TkCximage.cpp 2008/10/03 21:20:28 10549
+++ trunk/amsn/utils/TkCximage/src/TkCximage.cpp 2008/12/28 21:50:08 10818
@@ -26,6 +26,65 @@
char currenttime[30];
FILE * logfile;
+#define AVAILABLE_FORMATS 6
+Tk_PhotoImageFormat cximageFormats[] = {
+ {
+ "cximage",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxgif",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxpng",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxjpg",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxtga",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ },
+ {
+ "cxbmp",
+ (Tk_ImageFileMatchProc *) ChanMatch,
+ (Tk_ImageStringMatchProc *) ObjMatch,
+ (Tk_ImageFileReadProc *) ChanRead,
+ (Tk_ImageStringReadProc *) ObjRead,
+ (Tk_ImageFileWriteProc *) ChanWrite,
+ (Tk_ImageStringWriteProc *) StringWrite
+ }
+};
+
+
int RGB2BGR(Tk_PhotoImageBlock *data, BYTE * pixelPtr) {
int i;
int size = data->height * data->width * data->pixelSize;
@@ -267,10 +326,6 @@
INITLOGS(); //
LOG("---------------------------------"); //
-
- int AvailableFromats = 6;
- const char *KnownFormats[] = {"cximage", "cxgif", "cxpng", "cxjpg", "cxtga", "cxbmp"};
-
//Check Tcl version is 8.3 or higher
if (Tcl_InitStubs(interp, TCL_VERSION, 1) == NULL) {
return TCL_ERROR;
@@ -285,15 +340,6 @@
LOG("Tk stub initialized"); //
- Tk_PhotoImageFormat cximageFormats = {
- NULL,
- (Tk_ImageFileMatchProc *) ChanMatch,
- (Tk_ImageStringMatchProc *) ObjMatch,
- (Tk_ImageFileReadProc *) ChanRead,
- (Tk_ImageStringReadProc *) ObjRead,
- (Tk_ImageFileWriteProc *) ChanWrite,
- (Tk_ImageStringWriteProc *) StringWrite
- };
LOG("Creating commands"); //
@@ -323,14 +369,9 @@
#endif
LOG("Adding format : "); //
- for (i = 0; i < AvailableFromats; i++) {
- delete cximageFormats.name;
- cximageFormats.name = new char[strlen(KnownFormats[i]) + 1];
- strcpy(cximageFormats.name, KnownFormats[i]);
- Tk_CreatePhotoImageFormat(&cximageFormats);
- APPENDLOG(cximageFormats.name); //
- delete cximageFormats.name;
- cximageFormats.name = NULL;
+ for (i = 0; i < AVAILABLE_FORMATS; i++) {
+ Tk_CreatePhotoImageFormat(&cximageFormats[i]);
+ APPENDLOG(cximageFormats[i].name); //
}
// end of Initialisation
|