88
88
line->numpoints = self->numpoints;
92
int setPattern(int index, int value)
94
if (index < 0 || index > MS_MAXPATTERNLENGTH) {
95
msSetError(MS_SYMERR, "Can't set pattern at index %d.", "setPattern()", index);
94
imageObj *getImage(outputFormatObj *input_format)
97
outputFormatObj *format = NULL;
98
rendererVTableObj *renderer = NULL;
100
if (self->type != MS_SYMBOL_PIXMAP)
102
msSetError(MS_SYMERR, "Can't return image from non-pixmap symbol",
109
format = input_format;
113
format = msCreateDefaultOutputFormat(NULL, "GD/GIF", "gdgif");
115
format = msCreateDefaultOutputFormat(NULL, "GD/PNG", "gdpng");
118
msInitializeRendererVTable(format);
123
msSetError(MS_IMGERR, "Could not create output format",
128
renderer = format->vtable;
129
msPreloadImageSymbol(renderer, self);
130
if (self->pixmap_buffer)
132
image = msImageCreate(self->pixmap_buffer->width, self->pixmap_buffer->height, format, NULL, NULL,
133
MS_DEFAULT_RESOLUTION, MS_DEFAULT_RESOLUTION, NULL);
134
renderer->mergeRasterBuffer(image, self->pixmap_buffer, 1.0, 0, 0, 0, 0,
135
self->pixmap_buffer->width, self->pixmap_buffer->height);
141
int setImage(imageObj *image)
143
rendererVTableObj *renderer = NULL;
145
renderer = image->format->vtable;
147
if (self->pixmap_buffer) {
148
msFreeRasterBuffer(self->pixmap_buffer);
149
free(self->pixmap_buffer);
152
self->pixmap_buffer = (rasterBufferObj*)malloc(sizeof(rasterBufferObj));
153
if (!self->pixmap_buffer) {
154
msSetError(MS_MEMERR, NULL, "setImage()");
96
155
return MS_FAILURE;
98
self->pattern[index] = value;
157
renderer->initializeRasterBuffer(self->pixmap_buffer, image->width, image->height, image->format->imagemode);
158
self->type = MS_SYMBOL_PIXMAP;
159
renderer->getRasterBufferCopy(image, self->pixmap_buffer);
99
161
return MS_SUCCESS;
103
imageObj *getImage(outputFormatObj *format)
105
return msSymbolGetImageGD(self, format);
108
int setImage(imageObj *image)
110
return msSymbolSetImageGD(self, image);