blob: 1188c9ee11d4d92150ff14520f62a720bb61ae32 [file] [log] [blame]
cristyd50017c2009-09-29 00:00:10 +000012009-09-28 6.5.6-6 Cristy <quetzlzacatenango@image...>
2 * Add splice() method to splice the background color into the image.
3
cristy3ed852e2009-09-05 21:47:34 +000042009-04-01 6.5.1-1 Cristy <quetzlzacatenango@image...>
5 * Add virtualPixelMethod() method for image and options, required for
6 distort().
7
82008-09-09 6.4.3-7 Cristy <quetzlzacatenango@image...>
9 * Use ImagesToBlob() rather than ImageToBlob() for writeImages().
10
112007-10-02 6.3.6-7 Cristy <quetzlzacatenango@image...>
12 * Define USE_MAP for Magick++/tests/colorHistogram.cpp (patch provided by
13 albert chin <china@thewr...>).
14
152007-04-10 6.3.3-7 Cristy <quetzlzacatenango@image...>
16 * Add colorspaceType(RGBColorspace) to set RGB colorspace before an
17 image read (useful to convert CMYK Potscript to RGB).
18
192006-02-05 6.3.2-3 Cristy <quetzlzacatenango@image...>
20 * Clear exception in throwException() method.
21
222006-01-16 6.3.2-0 Cristy <quetzlzacatenango@image...>
23 * Add extent() method to extend the image as defined by the geometry.
24
252003-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
26
27 * demo/analyze.cpp (main): New program to demonstrate using the
28 'analyze' process module.
29 * demo/Makefile.am: Add rules to build analyze program.
30 * lib/Image.cpp (process): New method to execute process modules.
31 * lib/Image.cpp (attribute): New method to get and set named image
32 attributes.
33
342003-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
35
36 * lib/Color.cpp: Ensure that all non-default constructors set
37 opacity to opaque.
38
392003-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
40
41 * lib/Magick++/STL.h (colorHistogram): If map key is not const,
42 then implicit type conversion occurs. Sun's C++ compiler doesn't
43 seem to handle that. The map key is now defined as const in
44 the insert arguments.
45
462003-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
47
48 * tests/Makefile.am: Add build support for colorHistogram.cpp.
49 * tests/colorHistogram.cpp: New test program to test retrieving
50 color histograms from the image using colorHistogram().
51 * lib/Magick++/STL.h (colorHistogram): Added new template function
52 to retrieve a color histogram into a user-provided container.
53 Verified to work when using STL <vector> and <map> as the target
54 container types. When <map> is used, a user-specified color may
55 be used to perform lookups in the map to obtain the usage count for
56 that color.
57 * lib/Color.cpp (operator >=): Insufficient resolution was being
58 provided in order to reliably sort color objects in STL
59 containers. The updated algorithm should be fail-safe.
60
612003-08-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
62
63 * lib/Image.cpp (channelDepth): New method to set or get the
64 modulus depth for a specified channel.
65
662003-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
67
68 * lib/Magick++/Include.h (Magick): Added support for
69 CopyCyanCompositeOp, CopyMagentaCompositeOp,
70 CopyYellowCompositeOp, and CopyBlackCompositeOp, composition
71 operators.
72
732003-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
74
75 * lib/Image.cpp (depth): Method now only updates the
76 Image/ImageInfo depth member and retrieves the value of the Image
77 depth member.
78 (modulusDepth): New method to inspect the pixels for actual
79 modulus depth, or update/reduce the pixels to a specified modulus
80 depth. The depth method was performing this function so any code
81 which depended on the depth method to compute or set the modulus
82 depth should be updated to use modulusDepth() instead.
83
842003-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
85
86 * lib/Image.cpp (matte): If a new matte channel is created,
87 initialize it to opaque. Likewise, if the matte channel is
88 eliminated, initialize the unused channel to opaque.
89
902003-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
91
92 * demo/demo.cpp (main): Don't crop logo image. *
93 * *.h, *.cpp: Include "Magick++/Include.h" before including any
94 compiler or system header in order to ensure that LFS defines are
95 properly applied. Inspired by patch from Albert Chin-A-Young.
96
972003-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
98
99 * lib/Magick++/Include.h: Needed to import ThrowLoggedException.
100 * lib/Exception.cpp (throwException): Add originating source
101 module, source line, and function name (if available) to exception
102 report. This is useful in order to determine the exact conditions
103 that lead to the exception being thrown.
104 * lib/Magick++/Exception.h: Added ErrorCoder, WarningCoder,
105 ErrorConfigure, WarningConfigure, ErrorDraw, WarningDraw,
106 ErrorImage, WarningImage, ErrorMonitor, WarningMonitor,
107 ErrorRegistry, WarningRegistry, ErrorStream, WarningStream,
108 ErrorType, and WarningType, exception classes to support the full
109 set of exceptions that ImageMagick can throw.
110
1112003-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
112
113 * lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from
114 Mike Chiarappa to compile using Borland C++.
115
1162003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
117
118 * lib/Geometry.cpp (string): Throw an exception if a string is
119 requested from an invalid geometry object.
120
1212003-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
122
123 * lib/Geometry.cpp (operator =): If GetGeometry returns NoValue,
124 then assign an invalid geometry object to cause an exception if
125 the geometry is then used.
126
1272003-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
128
129 * lib/Magick++/Exception.h (ErrorModule): Added class to handle
130 module errors.
131 * lib/Magick++/Exception.h (WarningModule) Added class to handle
132 module warnings.
133
1342003-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
135
136 * lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to
137 access coder list.
138
1392003-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
140
141 * lib/Magick++/STL.h (affineTransformImage): Add function object
142 contributed by Vladimir Lukianov to apply an affine transform to
143 the image.
144 * lib/Image.cpp (affineTransform): Added method contributed by
145 Vladimir Lukianov to apply an affine transform to the image.
146
1472003-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
148
149 * lib/Magick++/Include.h: Decided to back out change
150 which used the _VISUALC_ define to trigger inclusion of
151 <sys/types.h>.
152
1532003-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
154
155 * lib/Magick++/Include.h: If _VISUALC_ is defined,
156 include <sys/types.h>. This ensures that this necessary
157 header is included even if HAVE_SYS_TYPES_H is not defined
158 in magick-config.h.
159
1602003-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
161
162 * lib/Image.cpp (InitializeMagick): InitializeMagick is
163 now a C++ function rather than a namespace inclusion.
164 An atexit() handler is registered to invoke DestroyMagick
165 when the program exits. Relying on static deconstruction
166 to invoke DestroyMagick proved to be unreliable due to
167 translation unit destruction uncertainty.
168
1692003-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
170
171 * lib/Image.cpp (Image::Image (MagickCore::Image* image_)):
172 Incorporated recommended fix from Jukka Manner to avoid
173 a scenario which leaks an Options object.
174 * tests/coalesceImages.cpp: Updated to use modified
175 coalesceImages() interface.
176 * lib/Magick++/STL.h (coalesceImages): Replaced implementation
177 with one from Felix Heimbrecht. The template signature has
178 changed to return a new image sequence. This template API
179 silently ceased to funtion due to an ImageMagick CoalesceImages
180 API change.
181
1822003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
183
184 * tests/readWriteBlob.cpp (main): Added check for
185 stream read failure when reading blob data.
186 (class myBlob): Use get rather than read.
187
1882003-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
189
190 * tests/attributes.cpp : Change in the way that Magick++
191 retrieves density caused tests to fail. Density now defaults
192 to 72x72 (ImageMagick default) rather than invalid.
193
1942003-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
195
196 * demo/Makefile.am (CLEANFILES): Fix clean target to remove
197 *_out.mvg output files as well.
198 * demo/zoom.cpp: Added a command-line parser for dash
199 arguments as well as an image "resample" capability.
200 * lib/Image.cpp (density): Obtain density from Image
201 rather than ImageInfo if the Image is valid.
202
2032003-03-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
204
205 * lib/Makefile.am : Added rules to install ImageMagick++.pc.
206 * lib/ImageMagick++.pc.in : Added pkgconfig file for
207 -lImageMagick++.
208
2092003-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
210
211 * lib/Image.cpp (colorSpace): Pass image->colorspace to
212 TransformRGBColorspace.
213
2142003-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
215
216 * lib/Magick++/STL.h (writeImages): Should have been invoking
217 WriteImages rather than WriteImage!
218
2192003-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
220
221 * lib/Magick++/Include.h: Add HSL and HWB colorspace
222 transformation support.
223
2242003-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
225
226 * lib/Image.cpp (colorSpace): Support colorspace transforms
227 other than to and from RGB by translating to RGB as an intermediate
228 step.
229
2302002-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
231
232 * lib/Drawable.cpp: Added DrawablePushClipPath,
233 DrawablePopClipPath, and DrawableClipPath. Implementation
234 contributed by Vladimir <lvm@integrum.ru>.
235
2362002-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
237
238 * lib/Image.cpp (colorMapSize): New method to set, or return
239 the colormap size.
240
2412002-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
242
243 * lib/Image.cpp (adaptiveThreshold): New method.
244
2452002-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
246
247 * lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing
248 delegate exceptions.
249
2502002-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
251
252 * lib/Options.cpp (textEncoding): Had forgotten to implement
253 textEncoding!
254
2552002-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
256
257 * lib/Color.cpp (Color): Use of 'new' and 'delete' in inlines was
258 causing memory allocation/deallocation problems for users of the
259 DLL build. Problem was identified by Marc Iwan.
260
2612002-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
262
263 * lib/Image.cpp (compare): New method to compare current image
264 with a reference image.
265
2662002-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
267
268 * lib/Image.cpp (textEncoding): New method to allow setting the
269 default text encoding (e.g. "UTF-8").
270
271 * lib/Drawable.cpp (DrawableText): Added an alternate constructor
272 to allow specifying the text encoding (e.g. "UTF-8").
273
2742002-08-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
275
276 * Overall: Now compiles as a DLL using Visual C++.
277
2782002-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
279
280 * lib/Image.cpp (profile): Added method to store, delete, or
281 retrieve named application profiles.
282
2832002-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
284
285 * lib/Image.cpp (type): Set the ImageInfo type attribute when
286 setting the image type. If the type attribute is set to something
287 other than UndefinedType (implying that the user has set a desired
288 output image type), then return that as the image type, otherwise
289 use GetImageType() to evaluate the image type.
290
2912002-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
292
293 * lib/Drawable.cpp (DrawableTextUnderColor): New class to set the
294 text undercolor. When text undercolor is set, a rectangle of the
295 specified color is rendered under text annotations.
296
2972002-05-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
298
299 * Magick++ library no longer depends on iostreams at all.
300
3012002-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
302
303 * lib/Image.cpp (throwImageException): ExceptionInfo was not being
304 properly initialized. This could cause some errors to cause an
305 abort in error.c rather than throwing an exception.
306
3072002-04-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
308
309 * lib/Image.cpp (draw): Use draw.h drawing APIs to draw on image.
310 This means that MVG output no longer comes from code in
311 Drawable.cpp.
312
3132002-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
314
315 * lib/STL.cpp: Moved function object implementations from STL.h to
316 STL.cpp.
317
3182002-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
319
320 * lib/Image.cpp (getConstPixels): Changed offset parameter type
321 from 'unsigned int' to 'int'.
322 (getPixels): Changed offset parameter type from 'unsigned int' to
323 'int'.
324 (setPixels): Changed offset parameter type from 'unsigned int' to
325 'int'.
326 (cacheThreshold): Changed argument type from 'const long' to
327 'const int'.
328 (matteFloodfill): Changed offset parameter type from 'const long' to
329 'const int'.
330
331 * lib/Pixels.cpp (getConst): New method to return read-only pixels.
332 (get): Offset parameter types changed from 'unsigned int' to 'int'.
333
3342002-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
335
336 * lib/Magick++/Drawable.h (DrawableDashOffset): Change dashoffset
337 type to 'double' rather than 'unsigned int' in order to match
338 ImageMagick.
339
340 * lib/Drawable.cpp (DrawableDashArray): Change dasharray type to
341 'double' rather than 'unsigned int' in order to match
342 ImageMagick. Previous 'unsigned int' methods remain for
343 compatability reasons.
344
3452002-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
346
347 * lib/Drawable.cpp (DrawableCompositeImage): Always output
348 composite images as inlined Base64.
349
3502002-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
351
352 * lib/Drawable.cpp (DrawableCompositeImage): If magick attribute
353 string is specified, then composite image is supplied to
354 ImageMagick as inlined Base64 rather than by MPRI reference.
355
356 * lib/Blob.cpp (base64): Added methods to update Blob with data
357 from Base64-encoded string, or to return a Base64-encoded string
358 from Blob. Still needs documentation.
359
3602002-04-09 Dom Lachowicz <cinamod@hotmail.com>
361
362 * lib/Image.cpp (Image::ping): Added PingBlob function
363
3642002-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
365
366 * lib/Drawable.cpp (DrawableDashArray::operator=): Added missing
367 assignment operator (fixes a bug).
368 (DrawableDashArray::DrawableDashArray): Added missing copy
369 constructor (fixes a bug).
370
371 * lib/Image.cpp (oilPaint): Changed argument type from unsigned
372 int to double.
373 (chromaBluePrimary): Changed argument type from float to double.
374 (chromaGreenPrimary): Changed argument type from float to double.
375 (chromaRedPrimary): Changed argument type from float to double.
376 (chromaWhitePoint): Changed argument type from float to double.
377 (getConstPixels): Changed argument type of x_ & _y from 'int' to
378 'unsigned int'.
379 (getPixels): Changed argument type of x_ & _y from 'int' to
380 'unsigned int'.
381
3822002-04-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
383
384 * lib/Image.cpp (debug): Added method to set ImageMagick debug
385 flag so that it prints debugging information while it runs.
386
3872002-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
388
389 * lib/Drawable.cpp: Fixed a bunch of bugs related to
390 DrawableCompositeImage, DrawableFont, and inconsistencies
391 discovered by Gimpel lint.
392
3932002-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
394
395 * lib/Image.cpp (draw): Properly delimit individual drawing
396 commands so that MVG output is correct.
397
3982002-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
399
400 * lib/Drawable.cpp (DrawableViewbox): MVG syntax wasn't correct.
401
402 * lib/Image.cpp (draw): Fix algorithm used to append newlines to
403 MVG commands so that draw() may be invoked multiple times while
404 still producing valid MVG.
405
4062002-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
407
408 * lib/Drawable.cpp (DrawableViewbox): New class to allow setting
409 the MVG output size.
410
4112002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
412
413 * lib/Drawable.cpp (print): Changed "mpr:" to "mpri:" in order to
414 *finally* get DrawableCompositeImage to work as intended.
415
416 * lib/Image.cpp (registerId): Bugfix. Register using
417 sizeof(MagickCore::Image) rather than sizeof(Image).
418
4192002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
420
421 * lib/Drawable.cpp (DrawableCompositeImage): Had failed to
422 initialize width and height in object to image width and height.
423
4242002-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
425
426 * lib/Magick++/STL.h (endianImage): New class to specify the
427 endian option for formats which support this notion (e.g. TIFF).
428
429 * lib/Image.cpp (endian): New method to specify the endian option
430 for formats which support this notion (e.g. TIFF).
431
4322002-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
433
434 * lib/Drawable.cpp (DrawableFont): Support specifying a font via
435 font-family, font-style, font-weight, and font-stretch. Wildcard
436 matches are supported.
437
4382002-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
439
440 * lib/Image.cpp (charcoal): Replace Magick++'s charcoal effect
441 with the output of ImageMagick's CharcoalImage function in order
442 to ensure consistency.
443
444 * lib/Magick++/CoderInfo.h (MatchType): Scope the MatchType
445 enumeration to the CoderInfo class so these enumeration names can
446 be re-used elsewhere without conflict. This results in a minor
447 API change to the coderInfoList() templated function since
448 enumerations must be specified like "CoderInfo::TrueMatch" rather
449 than just "TrueMatch". Hopefully not a problem since this
450 function and class were not documented outside of the headers
451 until this release.
452
4532002-02-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
454
455 * lib/Magick++/STL.h (coderInfoList): Finally wrote some
456 documentation.
457
4582002-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
459
460 * lib/Options.cpp : Use DestroyImageList() rather than DestroyImage().
461
462 * lib/Geometry.cpp (operator =): Use GetPageGeometry() rather than
463 PostscriptGeometry() to parse geometry specifications containing a
464 page size.
465
4662002-01-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
467
468 * Remove bogus cast of blob data in readImages().
469
4702002-01-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
471
472 * lib/Image.cpp (throwImageException): Throwing exceptions was
473 leaking memory.
474
475 * lib/Exception.cpp (throwException): Throwing exceptions was
476 leaking memory.
477
478 * lib/Image.cpp (replaceImage): Updated to properly handle
479 registration ids.
480 (modifyImage): Updated to properly handle registration ids.
481
4822002-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
483
484 * lib/Drawable.cpp (Magick::DrawableGravity::print):
485 Bugfix. Remove "Gravity" from the end of each gravity
486 specification string. Reported as PR#1084 by stefan@dotify.com.
487
4882002-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
489
490 * lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather
491 than DestroyImages().
492
4932002-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
494
495 * lib/Magick++/Options.h (antiAlias): Bugfix, set
496 drawInfo->text_antialias to control text antialiasing.
497
4982002-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
499
500 * lib/Magick++/Include.h : Imported new composition operators to
501 namespace: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp,
502 HueCompositeOp, SaturateCompositeOp, ValueCompositeOp,
503 ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp,
504 OverlayCompositeOp.
505
5062001-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
507
508 * lib/Image.cpp (strokePattern): New method to specify image to
509 use as pattern while drawing stroked-outlines of drawn objects.
510 (fillPattern): New method to specify image to use as pattern while
511 filling drawn objects.
512 (penTexture): Method is officially deprecated. Don't use anymore.
513 (penColor): Method is officially deprecated. Don't use anymore.
514
515 * lib/Drawable.cpp (DrawablePushPattern): Support pushing
516 (starting) pattern definition.
517 (DrawablePopPattern): Support popping (terminating) pattern
518 definition.
519
5202001-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
521
522 * lib/Drawable.cpp (DrawableCompositeImage): Read image
523 immediately if provided by filename, register with peristent
524 registry, and pass as perisistant image type.
525 (DrawableCompositeImage): Support specifying Image in memory.
526 Passed as perisistant image type.
527
5282001-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
529
530 * lib/Color.cpp (operator std::string): Color string buffer was
531 one character too short!
532
5332001-12-20 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
534
535 * lib/TypeMetric.cpp (characterWidth): Eliminate method.
536 (characterHeight): Eliminate method.
537 (all remaining methods): Change return type to 'double'. Fix
538 documentation in source files to reflect that units are in pixels
539 rather than points.
540 (descent): Renamed method from 'decent' to 'descent'.
541
5422001-11-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
543
544 * lib/Image.cpp (Magick): Invoke DestroyMagick() to clean up
545 ImageMagick allocations.
546
547 * lib/Magick++/Include.h (ImageType): Added some missing enums to
548 Magick namespace.
549
5502001-11-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
551
552 * lib/Magick++/CoderInfo.h (CoderInfo): Syntax fix.
553 ImageMagick bug #975.
554
555 * lib/Image.cpp (draw): Delete ostrstream data when it is no
556 longer needed. ImageMagick bug #988.
557
5582001-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
559
560 * lib/Image.cpp (pixelColor): Implementation didn't handle pixels
561 indexes correctly. Now it does.
562
5632001-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
564
565 * lib/Image.cpp (matteFloodfill): Coordinates are long values.
566 (floodFillOpacity): New method to floodfill opacity across pixels
567 matching color (within fuzz-factor) at point. Similar to
568 matteFloodfill except that color is selected from starting point.
569
5702001-10-29 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
571
572 * lib/Image.cpp (strokeDashArray): Change to type double.
573 (strokeDashOffset): Change to type double.
574
5752001-10-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
576
577 * lib/Geometry.cpp (Geometry): Add constructor from
578 MagickCore::RectangleInfo.
579
580 * lib/Image.cpp (boundingBox): Method to return smallest bounding
581 box enclosing non-border pixels.
582
5832001-10-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
584
585 * lib/Image.cpp (getConstIndexes): Add method to obtain read-only
586 pixel indexes.
587 (getIndexes): Add method to obtain read-write pixel indexes.
588 (Image::Image): Send warnings from Image constructor to cerr
589 rather than throwing.
590
591 * lib/Color.cpp (Color(PixelPacket&)): Change argument to const
592 PixelPacket& as it should have been from the beginning.
593
594 * lib/Image.cpp (pixelColor): Reimplemented to be a const method.
595
5962001-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
597
598 * lib/Image.cpp (getConstPixels): New method for returning a
599 read-only pixel view. Still requires documentation.
600
601 * lib/Magick++/STL.h (coderInfoList): Fixed compilation problem
602 when compiling with Visual C++.
603
6042001-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
605
606 * lib/Magick++/Color.h (scaleQuantumToDouble): Add polymorphic
607 version that accepts double to avoid downconversion error.
608
6092001-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
610
611 * lib/Magick++/Color.h (scaleQuantumToDouble): Cast Quantum to
612 double prior to division. Hopefully fix bug.
613
6142001-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
615
616 * lib/Magick++/Color.h (Color(const std::string)): Pass argument by reference.
617 * (operator=): Pass argument by const reference.
618
6192001-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
620
621 * lib/Magick++/STL.h (coderInfoList): New function to support
622 obtaining format coder information (as a list of type CoderInfo).
623
624 * lib/CoderInfo.cpp (CoderInfo): New class to support obtaining
625 format coder information.
626
6272001-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
628
629 * lib/Image.cpp (depth): Use GetImageDepth and SetImageDepth
630 rather than just getting/setting depth attributes.
631
632 * lib/Magick++/STL.h (opacityImage): New unary function object to
633 set, or attenuate, image pixel opacity throughout the image.
634
635 * lib/Image.cpp (opacity): New method to set, or attenuate, image
636 pixel opacity throughout the image.
637
638 * lib/Magick++/STL.h (typeImage): New unary function object to set
639 image type.
640
641 * lib/Image.cpp (type): Added ability to set image type.
642
6432001-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
644
645 * lib/Image.cpp (write(Blob)): Tell blob to use malloc allocator.
646
647 * lib/Blob.cpp (updateNoCopy): Added parameter so that user can
648 specify the allocation system (malloc or new) the memory came
649 from. Defaults to C++ memory allocator.
650
6512001-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
652
653 * lib/Image.cpp (fileSize): Decided to change return type to off_t
654 for increased range and portability.
655
6562001-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
657
658 * lib/Image.cpp (fileSize): Changed return value to double.
659
6602001-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
661
662 * lib/Image.cpp (colorMap): Allocate a colormap if it does not
663 already exist.
664
665 * lib/Pixels.cpp (indexes): Don't attempt to validate image type.
666
667 * lib/Image.cpp (colorMap): Optimized more for performance.
668
6692001-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
670
671 * lib/Image.cpp (fontTypeMetrics): New method to support
672 retrieving font metrics.
673
674 * lib/TypeMetric.cpp : New class to support font metrics
675 information.
676
6772001-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
678
679 * lib/Magick++/Color.h (scaleDoubleToQuantum): Inline static
680 method made from previous ScaleDoubleToQuantum #define.
681 (scaleQuantumToDouble): Inline static method made from previous
682 ScaleQuantumToDouble #define. Helps avoid possibility of clash
683 with user code.
684
6852001-08-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
686
687 * lib/Image.cpp (colorMap): Automagically extend colormap if
688 specified index is past end of current colormap. Colormap is
689 limited to a maximum depth of QuantumRange entries.
690
6912001-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
692
693 * lib/Image.cpp (clipMask): New method to add a clip mask to the
694 image. Adds clipping to any image operation wherever the clip
695 mask image is tranparent.
696
6972001-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
698
699 * lib/Drawable.cpp (print): Add single quotes around file names
700 and font specifications.
701
7022001-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
703
704 * lib/Image.cpp (read): Ensure that only a single image frame is read.
705
7062001-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
707
708 * lib/Magick++/STL.h (flattenImages): New function to flatten a
709 layered image.
710
711 * lib/Montage.cpp (Montage): Montage initial defaults are no
712 longer drawn from ImageInfo. MontageInfo structure is entirely
713 filled out by updateMontageInfo();
714
7152001-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
716
717 * lib/Montage.cpp (updateMontageInfo): Bugfix; colors which were
718 intentionally specified as invalid (unset) were being ignored.
719 This produced unattractive label text when doing a montage.
720
7212001-07-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
722
723 * lib/Magick++/STL.h (medianFilterImage): Changed argument from
724 unsigned int to const double.
725 (fillColorImage): New method.
726 (strokeColorImage): New method.
727 (isValidImage): New method.
728
729 * lib/Magick++/Image.h (edge): Change argument from unsigned int to double.
730 (medianFilter): Changed argument from unsigned int to const double.
731
732 * lib/Magick++/STL.h (edgeImage): Change argument from unsigned int to double.
733
734 * demo/demo.cpp (main): Updated to match PerlMagick demo.
735
7362001-06-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
737
738 * lib/Magick++/STL.h (shaveImage): New function to shave edges from image.
739
740 * lib/Image.cpp (shave): New method to shave edges from image.
741
7422001-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
743
744 * lib/Image.cpp (quantize): Remove conditions on whether
745 quantization should be done. Now quantization is always done.
746
7472001-06-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
748
749 * lib/Magick++/Image.h (blur,charcoal,emboss,sharpen): Changed
750 radius and sigma parameters to match current ImageMagick defaults.
751
7522001-02-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
753
754 * lib/Options.cpp (updateDrawInfo): The updateDrawInfo() method
755 was no longer needed. Due to ImageMagick changes, calling it was
756 causing some options to be lost.
757
7582001-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
759
760 * lib/Image.cpp (fillRule): New method to specify the rule to use when filling drawn objects.
761
7622001-01-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
763
764 * lib/Image.cpp (erase): New method to reset image to background
765 color.
766 (strokeAntiAlias): New method to control antialiasing of stroked
767 objects.
768
7692001-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
770
771 * lib/Image.cpp (channel): Renamed method from 'layer' to match
772 equivalent change in ImageMagick (ChannelImage). Enumeration
773 names *Layer renamed to *Channel.
774
7752001-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
776
777 * lib/Magick++/Montage.h (strokeColor): New method.
778 (fillColor): New method.
779
780 * lib/Image.cpp (replaceImage): Revised logic so that an inValid
781 image should be returned if a NULL pointer is passed. Before this
782 change the existing image was preserved.
783 (label): Work-around ImageMagick SetImageAttribute bug.
784
7852001-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
786
787 * lib/Image.cpp : Adjusted to ImageMagick animation parameter API change.
788
7892000-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
790
791 * lib/Drawable.cpp (DrawableCompositeImage): Support specifying
792 composition rule.
793
7942000-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
795
796 * lib/Image.cpp (draw): Bugfix - the primitive string was not
797 properly null terminated. It is a wonder that the code usually
798 worked at all. Thanks to afatela@marktest.pt for reporting it.
799
8002000-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
801
802 * lib/Magick++/STL.h (deconstructImages): New STL function for
803 deconstructing an image list to assist with creating an animation.
804 (mosaicImages): New STL function for inlaying an image list to
805 form a single coherent picture.
806
8072000-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
808
809 * lib/Image.cpp (convolve): New method to convolve image using
810 user-supplied convolution matrix.
811 (unsharpmask): New method to replace image with a sharpened
812 version of the original image using the unsharp mask algorithm.
813
8142000-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
815
816 * : Adapted to ImageMagick API change which eliminates AnnotateInfo.
817
8182000-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
819
820 * lib/Magick++/STL.h (annotateImage): Brought into sync with
821 annotate methods in Image.
822
8232000-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
824
825 * lib/Image.cpp (annotate): Usage of Geometry parameter was
826 incorrect. Geometry parameter is used to specify bounding area.
827 This changes the interpretation for two of the annotate methods
828 (which probably weren't usable before).
829
8302000-11-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
831
832 * lib/Magick++/Color.h (alphaQuantum): Bugfix. Due to change in
833 treatment of opacity member, alphaQuantum() was not allowing value
834 to be set.
835
8362000-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
837
838 * lib/Drawable.cpp (DrawableFillRule): New class to specify fill
839 rule (see SVG's fill-rule).
840 (DrawableDashOffset): New class to specify initial offset in dash
841 array.
842 (DrawableDashArray): New class to specify a stroke dash pattern.
843 (DrawableStrokeLineCap): New class to specify the shape to be used
844 at the end of open subpaths when they are stroked.
845 (DrawableStrokeLineJoin): New class to specify the shape to be
846 used at the corners of paths (or other vector shapes) when they
847 are stroked.
848 (DrawableMiterLimit): New class to specify extension limit for
849 miter joins.
850
8512000-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
852
853 * lib/Image.cpp (annotate): Reimplement text rotation using affine
854 member of AnnotateInfo.
855 (strokeDashOffset): New method for specifying the dash offset to use for
856 drawing vector objects. Similar to SVG stroke-dashoffset.
857 (strokeDashArray): New method for specifying the dash pattern to use
858 for drawing vector objects. Similar to SVG stroke-dasharray
859 (strokeLineCap): New method to specify the shape to be used at the end
860 of open subpaths when they are stroked. Similar to SVG
861 stroke-linecap.
862 (strokLineJoin): New method to specify the shape to be used at the
863 corners of paths (or other vector shapes) when they are
864 stroked. Similar to SVG stroke-linejoin.
865 (strokeMiterLimit): New method to specify the miter limit when joining
866 lines using MiterJoin. Similar to SVG stroke-miterlimit.
867 (strokeWidth): Renamed lineWidth method to strokeWidth.
868
8692000-10-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
870
871 * lib/Magick++/Drawable.h (DrawableCompositeImage): Add a
872 short-form constructor to support specifying image location and
873 name, but without specifying rendered size (use existing image
874 size).
875
8762000-10-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
877
878 * lib/Magick++/Drawable.h (DrawablePopGraphicContext): New class
879 to pop graphic context.
880 (DrawablePushGraphicContext): New class to push graphic context.
881
882 * lib/Drawable.cpp (DrawableStrokeAntialias): New class to set
883 stroke antialiasing.
884 (DrawableTextAntialias): New class to set text antialiasing.
885
8862000-10-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
887
888 * lib/Image.cpp (transformOrigin): New method to set origin of
889 coordinate system for use when annotating with text or drawing
890 (transformRotation): New method to set rotation for use when
891 annotating with text or drawing
892 (transformScale): New method to set scale for use when annotating
893 with text or drawing.
894 (transformSkewX): New method to set skew for use in X axis when
895 annotating with text or drawing.
896 (transformSkewY): New method to set skew for use in Y axis when
897 annotating with text or drawing.
898 (transformReset): New method to reset transformation to default.
899
900 * lib/Drawable.cpp (DrawablePath): New class for drawing SVG-style
901 vector paths.
902 (PathArcArgs): New class. Argument for PathArcArgs & PathArcAbs.
903 (PathArcAbs): New class. Draw arc using absolute coordinates.
904 (PathArcRel): New class. Draw arc using relative coordinates.
905 (PathClosePath): New class. Close drawing path.
906 (PathCurvetoArgs): New class. Argument class for PathCurvetoAbs &
907 PathCurvetoRel.
908 (PathCurvetoAbs): New class. Cubic bezier, absolute coordinates
909 (PathCurvetoRel): New class. Cubic bezier, relative coordinates
910 (PathSmoothCurvetoAbs): New class. Cubic bezier, absolute
911 coordinates
912 (PathSmoothCurvetoRel): New class. Cubic bezier, relative
913 coordinates
914 (PathQuadraticCurvetoArgs): New class. Argument class for
915 PathQuadraticCurvetoAbs and PathQuadraticCurvetoRel.
916 (PathQuadraticCurvetoAbs): New class. Quadratic bezier, absolute
917 coordinates
918 (PathQuadraticCurvetoRel): New class. Quadratic bezier, relative
919 coordinates
920 (PathSmoothQuadraticCurvetoAbs): New class. Quadratic bezier,
921 absolute coordinates
922 (PathSmoothQuadraticCurvetoRel): New class. Quadratic bezier,
923 relative coordinates
924 (PathLinetoAbs): New class. Line to, absolute coordinates
925 (PathLinetoRel): New class. Line to, relative coordinates
926 (PathLinetoHorizontalAbs): New class. Horizontal lineto, absolute
927 coordinates
928 (PathLinetoHorizontalRel): New class. Horizontal lineto, relative
929 coordinates
930 (PathLinetoVerticalAbs): New class. Veritical lineto, absolute
931 coordinates.
932 (PathLinetoVerticalRel): New class. Vertical lineto, relative
933 coordinates.
934 (PathMovetoAbs): New class. Moveto, absolute coordinates
935 (PathMovetoRel): New class. Moveto, relative coordinates
936
9372000-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
938
939 * lib/Drawable.cpp (DrawableSkewX): New object to apply skew in X direction.
940 (DrawableSkewY): New object to apply skew in Y direction.
941
9422000-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
943
944 * lib/Image.cpp (edge): Change argument from 'unsigned int' to
945 'double' in order to match ImageMagick API.
946
9472000-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
948
949 * lib/Drawable.cpp (DrawableCompositeImage): Renamed from
950 DrawableImage.
951 (DrawableTextDecoration): Renamed form DrawableDecoration.
952 (all-classes): Complete re-write to write the drawing command to a
953 stream when draw() is invoked rather than at object construction
954 time. This may be somewhat slower for individual draw operations
955 but should be at least as fast for lists of drawing commands,
956 and is more flexible going into the future. Drawable classes now
957 inherit from DrawableBase but are passed into STL lists and Image
958 draw() methods via the surrogate class Drawable. The upshot of
959 all this is that the existing published API has not been altered
960 but things work much differently under the covers.
961
9622000-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
963
964 * lib/Drawable.cpp (DrawableStrokeColor): Renamed from DrawableStroke
965 (DrawableFillColor): Renamed from DrawableFill
966 (DrawableRotation): New class to influence object rotation.
967 (DrawableScaling): New class to influence object scaling.
968 (DrawableTranslation): New class to influence object translation.
969
9702000-10-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
971
972 * lib/Drawable.cpp (DrawableAffine): New class to influence object
973 scaling, rotation, and translation (as defined by SVG XML).
974 (DrawableAngle): New class to influence drawing angle.
975 (DrawableDecoration): New class to influence text decoration such
976 as underline.
977 (DrawableFill): New class to set object filling color.
978 (DrawableFillOpacity): New class to set opacity to use when
979 filling object.
980 (DrawableFont::): New class to set font.
981 (DrawableGravity): New class to set text placement gravity.
982 (DrawablePointSize): New class to set font point size.
983 (DrawableStroke): New class to set drawing stroke color.
984 (DrawableStrokeOpacity): New class to set drawing stroke opacity.
985 (DrawableStrokeWidth): New class to set drawing stroke width.
986
9872000-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
988
989 * lib/Drawable.cpp (DrawableImage): Added width and height
990 parameters to specify size to scale rendered image to. This is
991 actually a bug-fix since it seems that the correct drawing command
992 was no longer being generated.
993
9942000-09-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
995
996 * lib/Image.cpp (read): New overloaded method to read an image
997 based on an array of raw pixels, of specified type and mapping, in
998 memory.
999 (write): New overloaded method to write image to an array of
1000 pixels, of specified type and mapping.
1001 (Image): New overloaded constructor to construct an image based on
1002 an array of raw pixels, of specified type and mapping, in memory.
1003
10042000-09-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1005
1006 * lib/Image.cpp (colorize): API change to match change in
1007 ImageMagick. Now accepts percentage of red, green, and blue to
1008 colorize with using specified pen color.
1009
10102000-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1011
1012 * lib/Magick++/Drawable.h: Reverted Coordinate implemenation back
1013 from and STL pair based implementation to a simple class. Maybe
1014 this will improve portability. It is more understandable anyway.
1015
10162000-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1017
1018 * lib/Options.cpp : Bugfix. Some DrawInfo attributes were not
1019 being updated. This lead to options like fontPointsize not
1020 changing the font.
1021
10222000-08-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1023
1024 * lib/Magick++/STL.h (blurImage, charcoalImage, embossImage,
1025 sharpenImage): Expand order_ argument to radius_ & sigma_
1026 arguments for more control (matches ImageMagick API change).
1027
1028 * lib/Image.cpp (blur, charcoal, emboss, sharpen): Expand order_
1029 argument to radius_ & sigma_ arguments for more control (matches
1030 ImageMagick API change).
1031
10322000-08-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1033
1034 * lib/Image.cpp (read): Check returned Image for embedded
1035 exception, as well as the existing parameter check. This fixes
1036 the bug that warnings are not reported.
1037
10382000-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1039
1040 * test/*.cpp demo/*.cpp: Added call to MagickIncarnate() to set
1041 ImageMagick install location for Windows. Hopefully this hack can
1042 be removed someday.
1043
10442000-07-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1045
1046 * lib/Image.cpp (colorFuzz): Changed type to 'double' from
1047 'unsigned int' to match change in ImageMagick.
1048
1049 * lib/Color.cpp (Color*): Added copy constructor from base class.
1050 (operator =): Added assignment operator from base class.
1051
10522000-06-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1053
1054 * lib/Magick++/Include.h : Changed enumeration FilterType to
1055 FilterTypes, and QuantumTypes to QuantumType in order to match
1056 last-minute API change in ImageMagick.
1057
10582000-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1059
1060 * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes()
1061 rather than GetIndexes().
1062
10632000-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1064
1065 * lib/Magick++/Montage.h (gravity): Type of gravity_ argument, and
1066 return value changed from 'unsigned int' to GravityType.
1067
10682000-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1069
1070 * lib/Drawable.cpp (DrawableArc, DrawableBezier, DrawablePolyline,
1071 RoundRectangle): Added support for new drawing objects.
1072
10732000-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1074
1075 * lib/Drawable.cpp: Removed all public methods which accept
1076 Coordinate arguments except those that accept lists of
1077 Coordinates. Converted remaining drawable object methods into
1078 individual classes which inherit from Drawable (e.g. "circle"
1079 becomes "DrawableCircle"). The constructor for each class is
1080 compatible with the original method. This results in annoying
1081 changes to user code but provides more implementation flexibility.
1082
10832000-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1084
1085 * lib/Drawable.cpp
1086 (fillEllipse,fillRectangle,fillCircle,fillPolygon): Removed
1087 methods. Object filling is now based on whether fillColor or
1088 penTexture are valid or not. This reflects ImageMagick internal
1089 changes.
1090
1091 * lib/Image.cpp (fillColor): New method to specify fill color when
1092 drawing objects.
1093 (strokeColor): New method to specify outline color when drawing
1094 objects.
1095 (penColor): Setting penColor now sets fillColor and
1096 strokeColor. Getting penColor retrieves the value of
1097 strokeColor. This supports backwards compatability.
1098
10992000-03-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1100
1101 * lib/Image.cpp (lineWidth): Type changed from unsigned int to double.
1102
11032000-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1104
1105 * lib/Magick++/STL.h (Magick):
1106
11072000-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1108
1109 * lib/Magick++/STL.h (blurImage,charcoalImage,edgeImage,embossImage,
1110 reduceNoiseImage,sharpenImage): Modified to support order of the
1111 pixel neighborhood. Backward compatable function objects constructors
1112 are provided for embossImage, and reduceNoiseImage.
1113
1114 * lib/Image.cpp (blur,charcoal,edge,emboss,reduceNoise,sharpen):
1115 Now accept unsigned int argument which represents the order of the
1116 pixel neighborhood (e.g. 3). This is not a backwards compatable
1117 change, however, backward compatable methods are provided for emboss,
1118 and reduceNoise.
1119
11202000-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1121
1122 * lib/Magick++/Pixels.h (Pixels): Moved Image pixel methods to
1123 Pixels class.
1124
11252000-02-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1126
1127 * lib/Image.cpp (annotate): Re-wrote to improve performance.
1128 (draw): Re-wrote to improve performance.
1129
11302000-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1131
1132 * lib/Drawable.cpp (text): Bugfix: support spaces in annotation text.
1133
11342000-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1135
1136 * lib/Magick++/STL.h (gaussianBlurImage): New function object to
1137 Gaussian blur image.
1138
1139 * lib/Image.cpp (gaussianBlur): New method to Gaussian blur image.
1140
11412000-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1142
1143 * lib/Image.cpp : Call-back based LastError class is eliminated in
1144 favor of ImageMagick 5.2's re-entrant ExceptionInfo reporting.
1145 This should make Magick++ thread safe under Win32.
1146
11472000-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1148
1149 * lib/Image.cpp (floodFillTexture): Fixed bug due to pixel pointer
1150 becoming invalid in ImageMagick function.
1151
11522000-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1153
1154 * lib/Image.cpp : Added locking to reference counting to ensure
1155 thread (pthread) safety.
1156
1157 * lib/Blob.cpp : Added locking to reference counting to ensure
1158 thread (pthread) safety.
1159
1160 * lib/LastError.cpp: Added support for thread specific data
1161 (pthreads) so that error reporting is thread safe.
1162
1163 * lib/Magick++/Thread.h: Added thread wrapper class to provide
1164 thread-safe locking (pthreads) to Magick++.
1165
11662000-01-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1167
1168 * lib/Image.cpp: Added methods getPixels, setPixels, syncPixels,
1169 readPixels, and writePixels, in order to provide low-level access
1170 to Image pixels. This approach (direct wrapper around ImageMagick
1171 functions) does not mean that the planned object-oriented wrapper
1172 has been forgotten, only that this wrapper is not ready yet, and
1173 users need to manipulate pixels *now*.
1174
11752000-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1176
1177 * lib/LastError.cpp: Complete re-implementation of LastError so
1178 that it hides its implementation. Also assures that all memory is
1179 explicitly deallocated at program exit to avoid the appearance of
1180 a leak.
1181
11822000-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1183
1184 * lib/Image.cpp (size): Bug-fix. Set image columns and rows as
1185 well as image options columns and rows.
1186
1187 * lib/Image.cpp :Depth parameters are now all unsigned in for consistency.
1188
1189 * lib/Image.cpp (write): Parameters for writing Blobs re-arranged
1190 again to hopefully be more sensible.
1191
1192 * lib/Magick++/STL.h: Bug-fix. Re-number scenes from zero when linking
1193 image range in container into a list. This provides expected results.
1194
11951999-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1196
1197 * lib/Image.cpp
1198 (write): Additional overloaded methods for BLOBs.
1199 (read): Additional overloaded methods for BLOBs. Re-ordered
1200 parameters for one existing method.
1201 (Image): Additional overloaded methods for BLOBs. Re-ordered
1202 parameters for one existing method.
1203
12041999-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1205
1206 * lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.
1207
12081999-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1209
1210 * lib/Image.cpp (medianFilter): New method.
1211
12121999-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1213
1214 * lib/Image.cpp (density): Bug fix. Was not setting image x & y density.
1215
12161999-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1217
1218 * lib/Image.cpp (page): psPageSize() is renamed to page() and now
1219 properly returns the attribute from the image.
1220
12211999-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1222
1223 * lib/Image.cpp: Rename transformColorSpace() to colorSpace().
1224 Added colorSpace() accessor method.
1225
12261999-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1227
1228 * lib/Color.cpp: Re-implemented PixelPacket pointer so that it is
1229 never NULL and added a 'valid' field for tracking object validity.
1230
12311999-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1232
1233 * lib/Image.cpp (quantizeError): Eliminated method.
1234
12351999-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1236
1237 * lib/Image.cpp (annotate & draw): Changed implementation to
1238 reflect change to the way AnnotateInfo is managed by ImageMagick.
1239
12401999-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1241
1242 * lib/Image.cpp (cacheThreshold): New method to set the pixel
1243 cache threshold.
1244
1245 * lib/Magick++/Include.h (Magick): Added new enumerations from
1246 classify.h.
1247
12481999-10-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1249
1250 * lib/Magick++/Options.h (fontPointsize): Argument is now a double
1251 to match change in ImageMagick.
1252
1253 * lib/Image.cpp (fontPointsize): Argument is now a double to match
1254 change in ImageMagick.
1255
12561999-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1257
1258 * lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at
1259 one rather than zero.
1260
12611999-10-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1262
1263 * lib/Image.cpp (Image): Fixed Image constructors from Blob. The
1264 image reference was not being instantiated as it should have been,
1265 causing a crash.
1266
12671999-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1268
1269 * lib/Blob.cpp: All blob length parameters are now of type size_t.
1270
1271 * lib/Image.cpp (write): Length estimate is now of type size_t.
1272
12731999-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1274
1275 * lib/Image.cpp (rotate): No longer accepts a crop option since
1276 ImageMagick no longer supports this.
1277 (shear): No longer accepts a crop option since ImageMagick no
1278 longer supports this.
1279
12801999-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1281
1282 * lib/Image.cpp:
1283 (rotate): No longer accepts sharpen argument.
1284 User must sharpen seperately if desired. This change is due to a
1285 similar change in ImageMagick 5.0.
1286 (condense): Removed method.
1287 (uncondense): Removed method.
1288 (condensed): Removed method.
1289 (pixelColor): Adapted to 5.0.
1290
1291 * lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick
1292 5.0's PixelPacket color representation.
1293
1294 * lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's
1295 PixelPacket color representation.
1296
12971999-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1298
1299 * lib/Image.cpp (condensed): Bug fix. The condensed() method was returning the opposite bool value than it should. Oops!
1300
13011999-09-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1302
1303 * lib/Magick++/Include.h (MagickCore): Eliminated requirement for
1304 including <magick/define.h>.
1305
13061999-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1307
1308 * lib/Image.cpp: Added accessor methods for other key ImageMagick
1309 structs.
1310
1311 * lib/Options.cpp (penTexture): Fixed bug with removing texture
1312 caused by change in Image constructor.
1313
1314 * lib/Image.cpp: Changed strategy such that an Image containing a
1315 null MagickCore::Image pointer is never constructed except for
1316 under error conditions. Removed existing checks for null image
1317 pointer on attribute methods.
1318
1319 Use image() and constImage() accessor methods as part of Image
1320 implementation in order to clean-up code and ensure
1321 const-correctness.
1322
13231999-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1324
1325 * lib/Magick++/STL.h (Magick): Added STL function readImages().
1326 Not tested yet.
1327 (Magick): Added STL function writeImages(). Not tested yet.
1328
1329 * lib/Image.cpp: Removed support for 'text' attribute as this is
1330 no longer present in ImageMagick as of 4.2.8.
1331
13321999-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1333
1334 * lib/Image.cpp (condense): Skip condensing image if already
1335 condensed.
1336 (uncondense): Skip uncondensing image if not condensed.
1337 (condensed): New method to test if image is condensed.
1338 (classType): New method which supports conversion of the image
1339 storage class. May result in loss of color information
1340 (quantization is used) if a DirectClass image is converted to
1341 PseudoClass.
1342
13431999-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1344
1345 * lib/Magick++/Color.h (Magick::Color): Color parameters are now
1346 stored in a MagickCore::RunlengthPacket structure which is
1347 referenced via a pointer. This structure is either allocated by a
1348 Magick::Color constructor or passed as an argument to a
1349 Magick::Color constructor so that it may refer to a
1350 MagickCore::Image pixel. The owner of the structure is managed so
1351 that the structure is only deleted if it was allocated by
1352 Magick::Color.
1353
13541999-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1355
1356 * overall : Removed 'Magick' prefix from all source file
1357 names. Moved class headers to Magick++ subdirectory. This should
1358 not break any code using the documented interface (via
1359 Magick++.h).
1360
13611999-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1362
1363 * lib/MagickImage.cpp (composite): Support composition placement
1364 by gravity like PerlMagick does.
1365
13661999-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1367
1368 * lib/MagickImage.cpp (Image): Added constructors to construct an
1369 Image from a BLOB.
1370
13711999-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1372
1373 * tests/manipulate.cpp (main): Wrote a basic sanity test for
1374 reading and writing BLOBS.
1375
13761999-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1377
1378 * lib/MagickImage.cpp (read): Added support for reading an encoded
1379 image stored in a BLOB. Uses new ImageMagick APIs introduced on
1380 July 21, 1999.
1381 (write): Added support for writing an encoded image to a BLOB.
1382
13831999-06-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1384
1385 * lib/MagickInclude.h : Use new <magick/api.h> interface to
1386 ImageMagick to avoid namespace-induced problems.
1387
1388 * configure.in : CPPFLAGS and LDFLAGS specified via the
1389 environment take precidence over flags from Magick-config.
1390
13911999-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1392
1393 * lib/MagickSTL.h (mapImages): New algorithm to map the sequence
1394 of images to the color map of a provided image.
1395 (quantizeImages): New algorithm to quantize a sequence of images
1396 to a common color map.
1397
13981999-05-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1399
1400 * lib/MagickBlob.cpp (updateNoCopy): New method to allow derived
1401 classes to insert data into the base class without making a copy
1402 of the data. This represents a transfer of ownership of the data
1403 from the derived class to the base class.
1404
14051999-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1406
1407 * lib/MagickColor.cpp (operator =): Adapted to new ImageMagick
1408 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1409
1410 * lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick
1411 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1412
14131999-05-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1414
1415 * lib/MagickBlob.cpp (Blob): Support default constructor for Blob.
1416
14171999-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1418
1419 * lib/MagickSTL.h (transformColorSpaceImage): New unary function object
1420 to invoke transformColorSpace on STL container object.
1421
1422 * lib/MagickImage.cpp (transformColorSpace): New method to
1423 transform the image data to a new colorspace.
1424
14251999-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1426
1427 * lib/MagickImage.cpp (ping): Re-implemented to match (requested)
1428 API change in ImageMagick 4.2.5. Method signature has changed to
1429 be like 'read'.
1430 (annotate): Added two new overloaded methods for text annotation
1431 in order to support the new rotated text capability in ImageMagick
1432 4.2.5. To accomplish this, the default for gravity had to be
1433 removed from several methods. This may impact existing code.
1434 Still not sure if this is the best set of method signatures.
1435
14361999-05-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1437
1438 * lib/MagickImage.cpp (ping): New method to obtain image size in
1439 bytes and geometry without the overhead of reading the complete
1440 image.
1441 (uncondense): New method to uncompress run-length encoded pixels
1442 into a simple array to make them easy to operate on.
1443
14441999-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1445
1446 * lib/MagickImage.cpp (comment): Passing an empty string as the
1447 comment results in no comment at all rather than a comment with no
1448 data.
1449
14501999-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1451
1452 * lib/MagickImage.cpp (iccColorProfile): Implemented method to set
1453 ICC color profile from opaque object in memory (must be formatted
1454 outside of Magick++).
1455 (iptcProfile): Implemented method to set IPTC profile from opaque
1456 object in memory (must be formatted outside of Magick++).
1457
1458 * lib/MagickBlob.cpp: New class to support managing user-supplied
1459 opaque Binary Large OBjects (BLOBS) in the API. Reference counted
1460 to improve semantics and to possibly reduce memory consumption.
1461
14621999-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1463
1464 * lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that
1465 shared library can be built.
1466
14671999-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1468
1469 * lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
1470 rather than std::string.
1471
14721999-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1473
1474 * lib/MagickColor.cpp (alpha): Added support for setting alpha via
1475 scaled-double to the Color class. The new method name is 'alpha'.
1476
14771999-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1478
1479 * lib/MagickColor.cpp: Added support for setting an alpha value
1480 (unscaled Quantum only) for use on DirectColor images that have
1481 matte enabled. This requires ImageMagick 4.2.2 dated April 13,
1482 1999 or later to compile since Cristy added a special flag to
1483 allow testing to see if the user has specified an opacity value:
1484 "I added XColorFlags to magick/classify.h. If DoMatte is set in
1485 color->flags then the opacity value is valid in color->pixel."
1486
14871999-04-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1488
1489 * demo/flip.cpp (main): New file. Demonstrates use of flipImage
1490 function object as well as morphImages algorithm.
1491
14921999-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1493
1494 * tests/color.cpp : New file to support testing the Magick::Color
1495 classes.
1496
1497 * lib/MagickOptions.cpp: The ImageInfo filter member is now
1498 ignored by ImageMagick (as of ImageMagick 4.2.2 April 10, 1998) so
1499 support for setting it is removed. The Image filter member is
1500 still updated. According to Cristy, this ImageMagick version
1501 removes automatic sharpening of resized images. The blur member
1502 is added to the Image structure. A blur value < 1 causes the image
1503 to be sharpened when resizing while a value > 1 leaves the image
1504 blurry. Magick++ does not yet support the blur member.
1505
1506