blob: 8571adf87723e440cb745f58cdbcb078ff1b2b42 [file] [log] [blame]
cristy3ed852e2009-09-05 21:47:34 +000012009-04-01 6.5.1-1 Cristy <quetzlzacatenango@image...>
2 * Add virtualPixelMethod() method for image and options, required for
3 distort().
4
52008-09-09 6.4.3-7 Cristy <quetzlzacatenango@image...>
6 * Use ImagesToBlob() rather than ImageToBlob() for writeImages().
7
82007-10-02 6.3.6-7 Cristy <quetzlzacatenango@image...>
9 * Define USE_MAP for Magick++/tests/colorHistogram.cpp (patch provided by
10 albert chin <china@thewr...>).
11
122007-04-10 6.3.3-7 Cristy <quetzlzacatenango@image...>
13 * Add colorspaceType(RGBColorspace) to set RGB colorspace before an
14 image read (useful to convert CMYK Potscript to RGB).
15
162006-02-05 6.3.2-3 Cristy <quetzlzacatenango@image...>
17 * Clear exception in throwException() method.
18
192006-01-16 6.3.2-0 Cristy <quetzlzacatenango@image...>
20 * Add extent() method to extend the image as defined by the geometry.
21
222003-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
23
24 * demo/analyze.cpp (main): New program to demonstrate using the
25 'analyze' process module.
26 * demo/Makefile.am: Add rules to build analyze program.
27 * lib/Image.cpp (process): New method to execute process modules.
28 * lib/Image.cpp (attribute): New method to get and set named image
29 attributes.
30
312003-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
32
33 * lib/Color.cpp: Ensure that all non-default constructors set
34 opacity to opaque.
35
362003-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
37
38 * lib/Magick++/STL.h (colorHistogram): If map key is not const,
39 then implicit type conversion occurs. Sun's C++ compiler doesn't
40 seem to handle that. The map key is now defined as const in
41 the insert arguments.
42
432003-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
44
45 * tests/Makefile.am: Add build support for colorHistogram.cpp.
46 * tests/colorHistogram.cpp: New test program to test retrieving
47 color histograms from the image using colorHistogram().
48 * lib/Magick++/STL.h (colorHistogram): Added new template function
49 to retrieve a color histogram into a user-provided container.
50 Verified to work when using STL <vector> and <map> as the target
51 container types. When <map> is used, a user-specified color may
52 be used to perform lookups in the map to obtain the usage count for
53 that color.
54 * lib/Color.cpp (operator >=): Insufficient resolution was being
55 provided in order to reliably sort color objects in STL
56 containers. The updated algorithm should be fail-safe.
57
582003-08-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
59
60 * lib/Image.cpp (channelDepth): New method to set or get the
61 modulus depth for a specified channel.
62
632003-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
64
65 * lib/Magick++/Include.h (Magick): Added support for
66 CopyCyanCompositeOp, CopyMagentaCompositeOp,
67 CopyYellowCompositeOp, and CopyBlackCompositeOp, composition
68 operators.
69
702003-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
71
72 * lib/Image.cpp (depth): Method now only updates the
73 Image/ImageInfo depth member and retrieves the value of the Image
74 depth member.
75 (modulusDepth): New method to inspect the pixels for actual
76 modulus depth, or update/reduce the pixels to a specified modulus
77 depth. The depth method was performing this function so any code
78 which depended on the depth method to compute or set the modulus
79 depth should be updated to use modulusDepth() instead.
80
812003-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
82
83 * lib/Image.cpp (matte): If a new matte channel is created,
84 initialize it to opaque. Likewise, if the matte channel is
85 eliminated, initialize the unused channel to opaque.
86
872003-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
88
89 * demo/demo.cpp (main): Don't crop logo image. *
90 * *.h, *.cpp: Include "Magick++/Include.h" before including any
91 compiler or system header in order to ensure that LFS defines are
92 properly applied. Inspired by patch from Albert Chin-A-Young.
93
942003-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
95
96 * lib/Magick++/Include.h: Needed to import ThrowLoggedException.
97 * lib/Exception.cpp (throwException): Add originating source
98 module, source line, and function name (if available) to exception
99 report. This is useful in order to determine the exact conditions
100 that lead to the exception being thrown.
101 * lib/Magick++/Exception.h: Added ErrorCoder, WarningCoder,
102 ErrorConfigure, WarningConfigure, ErrorDraw, WarningDraw,
103 ErrorImage, WarningImage, ErrorMonitor, WarningMonitor,
104 ErrorRegistry, WarningRegistry, ErrorStream, WarningStream,
105 ErrorType, and WarningType, exception classes to support the full
106 set of exceptions that ImageMagick can throw.
107
1082003-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
109
110 * lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from
111 Mike Chiarappa to compile using Borland C++.
112
1132003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
114
115 * lib/Geometry.cpp (string): Throw an exception if a string is
116 requested from an invalid geometry object.
117
1182003-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
119
120 * lib/Geometry.cpp (operator =): If GetGeometry returns NoValue,
121 then assign an invalid geometry object to cause an exception if
122 the geometry is then used.
123
1242003-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
125
126 * lib/Magick++/Exception.h (ErrorModule): Added class to handle
127 module errors.
128 * lib/Magick++/Exception.h (WarningModule) Added class to handle
129 module warnings.
130
1312003-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
132
133 * lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to
134 access coder list.
135
1362003-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
137
138 * lib/Magick++/STL.h (affineTransformImage): Add function object
139 contributed by Vladimir Lukianov to apply an affine transform to
140 the image.
141 * lib/Image.cpp (affineTransform): Added method contributed by
142 Vladimir Lukianov to apply an affine transform to the image.
143
1442003-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
145
146 * lib/Magick++/Include.h: Decided to back out change
147 which used the _VISUALC_ define to trigger inclusion of
148 <sys/types.h>.
149
1502003-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
151
152 * lib/Magick++/Include.h: If _VISUALC_ is defined,
153 include <sys/types.h>. This ensures that this necessary
154 header is included even if HAVE_SYS_TYPES_H is not defined
155 in magick-config.h.
156
1572003-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
158
159 * lib/Image.cpp (InitializeMagick): InitializeMagick is
160 now a C++ function rather than a namespace inclusion.
161 An atexit() handler is registered to invoke DestroyMagick
162 when the program exits. Relying on static deconstruction
163 to invoke DestroyMagick proved to be unreliable due to
164 translation unit destruction uncertainty.
165
1662003-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
167
168 * lib/Image.cpp (Image::Image (MagickCore::Image* image_)):
169 Incorporated recommended fix from Jukka Manner to avoid
170 a scenario which leaks an Options object.
171 * tests/coalesceImages.cpp: Updated to use modified
172 coalesceImages() interface.
173 * lib/Magick++/STL.h (coalesceImages): Replaced implementation
174 with one from Felix Heimbrecht. The template signature has
175 changed to return a new image sequence. This template API
176 silently ceased to funtion due to an ImageMagick CoalesceImages
177 API change.
178
1792003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
180
181 * tests/readWriteBlob.cpp (main): Added check for
182 stream read failure when reading blob data.
183 (class myBlob): Use get rather than read.
184
1852003-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
186
187 * tests/attributes.cpp : Change in the way that Magick++
188 retrieves density caused tests to fail. Density now defaults
189 to 72x72 (ImageMagick default) rather than invalid.
190
1912003-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
192
193 * demo/Makefile.am (CLEANFILES): Fix clean target to remove
194 *_out.mvg output files as well.
195 * demo/zoom.cpp: Added a command-line parser for dash
196 arguments as well as an image "resample" capability.
197 * lib/Image.cpp (density): Obtain density from Image
198 rather than ImageInfo if the Image is valid.
199
2002003-03-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
201
202 * lib/Makefile.am : Added rules to install ImageMagick++.pc.
203 * lib/ImageMagick++.pc.in : Added pkgconfig file for
204 -lImageMagick++.
205
2062003-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
207
208 * lib/Image.cpp (colorSpace): Pass image->colorspace to
209 TransformRGBColorspace.
210
2112003-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
212
213 * lib/Magick++/STL.h (writeImages): Should have been invoking
214 WriteImages rather than WriteImage!
215
2162003-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
217
218 * lib/Magick++/Include.h: Add HSL and HWB colorspace
219 transformation support.
220
2212003-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
222
223 * lib/Image.cpp (colorSpace): Support colorspace transforms
224 other than to and from RGB by translating to RGB as an intermediate
225 step.
226
2272002-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
228
229 * lib/Drawable.cpp: Added DrawablePushClipPath,
230 DrawablePopClipPath, and DrawableClipPath. Implementation
231 contributed by Vladimir <lvm@integrum.ru>.
232
2332002-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
234
235 * lib/Image.cpp (colorMapSize): New method to set, or return
236 the colormap size.
237
2382002-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
239
240 * lib/Image.cpp (adaptiveThreshold): New method.
241
2422002-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
243
244 * lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing
245 delegate exceptions.
246
2472002-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
248
249 * lib/Options.cpp (textEncoding): Had forgotten to implement
250 textEncoding!
251
2522002-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
253
254 * lib/Color.cpp (Color): Use of 'new' and 'delete' in inlines was
255 causing memory allocation/deallocation problems for users of the
256 DLL build. Problem was identified by Marc Iwan.
257
2582002-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
259
260 * lib/Image.cpp (compare): New method to compare current image
261 with a reference image.
262
2632002-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
264
265 * lib/Image.cpp (textEncoding): New method to allow setting the
266 default text encoding (e.g. "UTF-8").
267
268 * lib/Drawable.cpp (DrawableText): Added an alternate constructor
269 to allow specifying the text encoding (e.g. "UTF-8").
270
2712002-08-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
272
273 * Overall: Now compiles as a DLL using Visual C++.
274
2752002-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
276
277 * lib/Image.cpp (profile): Added method to store, delete, or
278 retrieve named application profiles.
279
2802002-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
281
282 * lib/Image.cpp (type): Set the ImageInfo type attribute when
283 setting the image type. If the type attribute is set to something
284 other than UndefinedType (implying that the user has set a desired
285 output image type), then return that as the image type, otherwise
286 use GetImageType() to evaluate the image type.
287
2882002-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
289
290 * lib/Drawable.cpp (DrawableTextUnderColor): New class to set the
291 text undercolor. When text undercolor is set, a rectangle of the
292 specified color is rendered under text annotations.
293
2942002-05-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
295
296 * Magick++ library no longer depends on iostreams at all.
297
2982002-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
299
300 * lib/Image.cpp (throwImageException): ExceptionInfo was not being
301 properly initialized. This could cause some errors to cause an
302 abort in error.c rather than throwing an exception.
303
3042002-04-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
305
306 * lib/Image.cpp (draw): Use draw.h drawing APIs to draw on image.
307 This means that MVG output no longer comes from code in
308 Drawable.cpp.
309
3102002-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
311
312 * lib/STL.cpp: Moved function object implementations from STL.h to
313 STL.cpp.
314
3152002-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
316
317 * lib/Image.cpp (getConstPixels): Changed offset parameter type
318 from 'unsigned int' to 'int'.
319 (getPixels): Changed offset parameter type from 'unsigned int' to
320 'int'.
321 (setPixels): Changed offset parameter type from 'unsigned int' to
322 'int'.
323 (cacheThreshold): Changed argument type from 'const long' to
324 'const int'.
325 (matteFloodfill): Changed offset parameter type from 'const long' to
326 'const int'.
327
328 * lib/Pixels.cpp (getConst): New method to return read-only pixels.
329 (get): Offset parameter types changed from 'unsigned int' to 'int'.
330
3312002-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
332
333 * lib/Magick++/Drawable.h (DrawableDashOffset): Change dashoffset
334 type to 'double' rather than 'unsigned int' in order to match
335 ImageMagick.
336
337 * lib/Drawable.cpp (DrawableDashArray): Change dasharray type to
338 'double' rather than 'unsigned int' in order to match
339 ImageMagick. Previous 'unsigned int' methods remain for
340 compatability reasons.
341
3422002-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
343
344 * lib/Drawable.cpp (DrawableCompositeImage): Always output
345 composite images as inlined Base64.
346
3472002-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
348
349 * lib/Drawable.cpp (DrawableCompositeImage): If magick attribute
350 string is specified, then composite image is supplied to
351 ImageMagick as inlined Base64 rather than by MPRI reference.
352
353 * lib/Blob.cpp (base64): Added methods to update Blob with data
354 from Base64-encoded string, or to return a Base64-encoded string
355 from Blob. Still needs documentation.
356
3572002-04-09 Dom Lachowicz <cinamod@hotmail.com>
358
359 * lib/Image.cpp (Image::ping): Added PingBlob function
360
3612002-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
362
363 * lib/Drawable.cpp (DrawableDashArray::operator=): Added missing
364 assignment operator (fixes a bug).
365 (DrawableDashArray::DrawableDashArray): Added missing copy
366 constructor (fixes a bug).
367
368 * lib/Image.cpp (oilPaint): Changed argument type from unsigned
369 int to double.
370 (chromaBluePrimary): Changed argument type from float to double.
371 (chromaGreenPrimary): Changed argument type from float to double.
372 (chromaRedPrimary): Changed argument type from float to double.
373 (chromaWhitePoint): Changed argument type from float to double.
374 (getConstPixels): Changed argument type of x_ & _y from 'int' to
375 'unsigned int'.
376 (getPixels): Changed argument type of x_ & _y from 'int' to
377 'unsigned int'.
378
3792002-04-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
380
381 * lib/Image.cpp (debug): Added method to set ImageMagick debug
382 flag so that it prints debugging information while it runs.
383
3842002-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
385
386 * lib/Drawable.cpp: Fixed a bunch of bugs related to
387 DrawableCompositeImage, DrawableFont, and inconsistencies
388 discovered by Gimpel lint.
389
3902002-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
391
392 * lib/Image.cpp (draw): Properly delimit individual drawing
393 commands so that MVG output is correct.
394
3952002-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
396
397 * lib/Drawable.cpp (DrawableViewbox): MVG syntax wasn't correct.
398
399 * lib/Image.cpp (draw): Fix algorithm used to append newlines to
400 MVG commands so that draw() may be invoked multiple times while
401 still producing valid MVG.
402
4032002-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
404
405 * lib/Drawable.cpp (DrawableViewbox): New class to allow setting
406 the MVG output size.
407
4082002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
409
410 * lib/Drawable.cpp (print): Changed "mpr:" to "mpri:" in order to
411 *finally* get DrawableCompositeImage to work as intended.
412
413 * lib/Image.cpp (registerId): Bugfix. Register using
414 sizeof(MagickCore::Image) rather than sizeof(Image).
415
4162002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
417
418 * lib/Drawable.cpp (DrawableCompositeImage): Had failed to
419 initialize width and height in object to image width and height.
420
4212002-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
422
423 * lib/Magick++/STL.h (endianImage): New class to specify the
424 endian option for formats which support this notion (e.g. TIFF).
425
426 * lib/Image.cpp (endian): New method to specify the endian option
427 for formats which support this notion (e.g. TIFF).
428
4292002-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
430
431 * lib/Drawable.cpp (DrawableFont): Support specifying a font via
432 font-family, font-style, font-weight, and font-stretch. Wildcard
433 matches are supported.
434
4352002-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
436
437 * lib/Image.cpp (charcoal): Replace Magick++'s charcoal effect
438 with the output of ImageMagick's CharcoalImage function in order
439 to ensure consistency.
440
441 * lib/Magick++/CoderInfo.h (MatchType): Scope the MatchType
442 enumeration to the CoderInfo class so these enumeration names can
443 be re-used elsewhere without conflict. This results in a minor
444 API change to the coderInfoList() templated function since
445 enumerations must be specified like "CoderInfo::TrueMatch" rather
446 than just "TrueMatch". Hopefully not a problem since this
447 function and class were not documented outside of the headers
448 until this release.
449
4502002-02-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
451
452 * lib/Magick++/STL.h (coderInfoList): Finally wrote some
453 documentation.
454
4552002-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
456
457 * lib/Options.cpp : Use DestroyImageList() rather than DestroyImage().
458
459 * lib/Geometry.cpp (operator =): Use GetPageGeometry() rather than
460 PostscriptGeometry() to parse geometry specifications containing a
461 page size.
462
4632002-01-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
464
465 * Remove bogus cast of blob data in readImages().
466
4672002-01-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
468
469 * lib/Image.cpp (throwImageException): Throwing exceptions was
470 leaking memory.
471
472 * lib/Exception.cpp (throwException): Throwing exceptions was
473 leaking memory.
474
475 * lib/Image.cpp (replaceImage): Updated to properly handle
476 registration ids.
477 (modifyImage): Updated to properly handle registration ids.
478
4792002-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
480
481 * lib/Drawable.cpp (Magick::DrawableGravity::print):
482 Bugfix. Remove "Gravity" from the end of each gravity
483 specification string. Reported as PR#1084 by stefan@dotify.com.
484
4852002-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
486
487 * lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather
488 than DestroyImages().
489
4902002-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
491
492 * lib/Magick++/Options.h (antiAlias): Bugfix, set
493 drawInfo->text_antialias to control text antialiasing.
494
4952002-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
496
497 * lib/Magick++/Include.h : Imported new composition operators to
498 namespace: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp,
499 HueCompositeOp, SaturateCompositeOp, ValueCompositeOp,
500 ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp,
501 OverlayCompositeOp.
502
5032001-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
504
505 * lib/Image.cpp (strokePattern): New method to specify image to
506 use as pattern while drawing stroked-outlines of drawn objects.
507 (fillPattern): New method to specify image to use as pattern while
508 filling drawn objects.
509 (penTexture): Method is officially deprecated. Don't use anymore.
510 (penColor): Method is officially deprecated. Don't use anymore.
511
512 * lib/Drawable.cpp (DrawablePushPattern): Support pushing
513 (starting) pattern definition.
514 (DrawablePopPattern): Support popping (terminating) pattern
515 definition.
516
5172001-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
518
519 * lib/Drawable.cpp (DrawableCompositeImage): Read image
520 immediately if provided by filename, register with peristent
521 registry, and pass as perisistant image type.
522 (DrawableCompositeImage): Support specifying Image in memory.
523 Passed as perisistant image type.
524
5252001-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
526
527 * lib/Color.cpp (operator std::string): Color string buffer was
528 one character too short!
529
5302001-12-20 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
531
532 * lib/TypeMetric.cpp (characterWidth): Eliminate method.
533 (characterHeight): Eliminate method.
534 (all remaining methods): Change return type to 'double'. Fix
535 documentation in source files to reflect that units are in pixels
536 rather than points.
537 (descent): Renamed method from 'decent' to 'descent'.
538
5392001-11-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
540
541 * lib/Image.cpp (Magick): Invoke DestroyMagick() to clean up
542 ImageMagick allocations.
543
544 * lib/Magick++/Include.h (ImageType): Added some missing enums to
545 Magick namespace.
546
5472001-11-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
548
549 * lib/Magick++/CoderInfo.h (CoderInfo): Syntax fix.
550 ImageMagick bug #975.
551
552 * lib/Image.cpp (draw): Delete ostrstream data when it is no
553 longer needed. ImageMagick bug #988.
554
5552001-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
556
557 * lib/Image.cpp (pixelColor): Implementation didn't handle pixels
558 indexes correctly. Now it does.
559
5602001-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
561
562 * lib/Image.cpp (matteFloodfill): Coordinates are long values.
563 (floodFillOpacity): New method to floodfill opacity across pixels
564 matching color (within fuzz-factor) at point. Similar to
565 matteFloodfill except that color is selected from starting point.
566
5672001-10-29 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
568
569 * lib/Image.cpp (strokeDashArray): Change to type double.
570 (strokeDashOffset): Change to type double.
571
5722001-10-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
573
574 * lib/Geometry.cpp (Geometry): Add constructor from
575 MagickCore::RectangleInfo.
576
577 * lib/Image.cpp (boundingBox): Method to return smallest bounding
578 box enclosing non-border pixels.
579
5802001-10-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
581
582 * lib/Image.cpp (getConstIndexes): Add method to obtain read-only
583 pixel indexes.
584 (getIndexes): Add method to obtain read-write pixel indexes.
585 (Image::Image): Send warnings from Image constructor to cerr
586 rather than throwing.
587
588 * lib/Color.cpp (Color(PixelPacket&)): Change argument to const
589 PixelPacket& as it should have been from the beginning.
590
591 * lib/Image.cpp (pixelColor): Reimplemented to be a const method.
592
5932001-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
594
595 * lib/Image.cpp (getConstPixels): New method for returning a
596 read-only pixel view. Still requires documentation.
597
598 * lib/Magick++/STL.h (coderInfoList): Fixed compilation problem
599 when compiling with Visual C++.
600
6012001-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
602
603 * lib/Magick++/Color.h (scaleQuantumToDouble): Add polymorphic
604 version that accepts double to avoid downconversion error.
605
6062001-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
607
608 * lib/Magick++/Color.h (scaleQuantumToDouble): Cast Quantum to
609 double prior to division. Hopefully fix bug.
610
6112001-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
612
613 * lib/Magick++/Color.h (Color(const std::string)): Pass argument by reference.
614 * (operator=): Pass argument by const reference.
615
6162001-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
617
618 * lib/Magick++/STL.h (coderInfoList): New function to support
619 obtaining format coder information (as a list of type CoderInfo).
620
621 * lib/CoderInfo.cpp (CoderInfo): New class to support obtaining
622 format coder information.
623
6242001-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
625
626 * lib/Image.cpp (depth): Use GetImageDepth and SetImageDepth
627 rather than just getting/setting depth attributes.
628
629 * lib/Magick++/STL.h (opacityImage): New unary function object to
630 set, or attenuate, image pixel opacity throughout the image.
631
632 * lib/Image.cpp (opacity): New method to set, or attenuate, image
633 pixel opacity throughout the image.
634
635 * lib/Magick++/STL.h (typeImage): New unary function object to set
636 image type.
637
638 * lib/Image.cpp (type): Added ability to set image type.
639
6402001-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
641
642 * lib/Image.cpp (write(Blob)): Tell blob to use malloc allocator.
643
644 * lib/Blob.cpp (updateNoCopy): Added parameter so that user can
645 specify the allocation system (malloc or new) the memory came
646 from. Defaults to C++ memory allocator.
647
6482001-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
649
650 * lib/Image.cpp (fileSize): Decided to change return type to off_t
651 for increased range and portability.
652
6532001-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
654
655 * lib/Image.cpp (fileSize): Changed return value to double.
656
6572001-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
658
659 * lib/Image.cpp (colorMap): Allocate a colormap if it does not
660 already exist.
661
662 * lib/Pixels.cpp (indexes): Don't attempt to validate image type.
663
664 * lib/Image.cpp (colorMap): Optimized more for performance.
665
6662001-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
667
668 * lib/Image.cpp (fontTypeMetrics): New method to support
669 retrieving font metrics.
670
671 * lib/TypeMetric.cpp : New class to support font metrics
672 information.
673
6742001-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
675
676 * lib/Magick++/Color.h (scaleDoubleToQuantum): Inline static
677 method made from previous ScaleDoubleToQuantum #define.
678 (scaleQuantumToDouble): Inline static method made from previous
679 ScaleQuantumToDouble #define. Helps avoid possibility of clash
680 with user code.
681
6822001-08-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
683
684 * lib/Image.cpp (colorMap): Automagically extend colormap if
685 specified index is past end of current colormap. Colormap is
686 limited to a maximum depth of QuantumRange entries.
687
6882001-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
689
690 * lib/Image.cpp (clipMask): New method to add a clip mask to the
691 image. Adds clipping to any image operation wherever the clip
692 mask image is tranparent.
693
6942001-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
695
696 * lib/Drawable.cpp (print): Add single quotes around file names
697 and font specifications.
698
6992001-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
700
701 * lib/Image.cpp (read): Ensure that only a single image frame is read.
702
7032001-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
704
705 * lib/Magick++/STL.h (flattenImages): New function to flatten a
706 layered image.
707
708 * lib/Montage.cpp (Montage): Montage initial defaults are no
709 longer drawn from ImageInfo. MontageInfo structure is entirely
710 filled out by updateMontageInfo();
711
7122001-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
713
714 * lib/Montage.cpp (updateMontageInfo): Bugfix; colors which were
715 intentionally specified as invalid (unset) were being ignored.
716 This produced unattractive label text when doing a montage.
717
7182001-07-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
719
720 * lib/Magick++/STL.h (medianFilterImage): Changed argument from
721 unsigned int to const double.
722 (fillColorImage): New method.
723 (strokeColorImage): New method.
724 (isValidImage): New method.
725
726 * lib/Magick++/Image.h (edge): Change argument from unsigned int to double.
727 (medianFilter): Changed argument from unsigned int to const double.
728
729 * lib/Magick++/STL.h (edgeImage): Change argument from unsigned int to double.
730
731 * demo/demo.cpp (main): Updated to match PerlMagick demo.
732
7332001-06-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
734
735 * lib/Magick++/STL.h (shaveImage): New function to shave edges from image.
736
737 * lib/Image.cpp (shave): New method to shave edges from image.
738
7392001-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
740
741 * lib/Image.cpp (quantize): Remove conditions on whether
742 quantization should be done. Now quantization is always done.
743
7442001-06-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
745
746 * lib/Magick++/Image.h (blur,charcoal,emboss,sharpen): Changed
747 radius and sigma parameters to match current ImageMagick defaults.
748
7492001-02-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
750
751 * lib/Options.cpp (updateDrawInfo): The updateDrawInfo() method
752 was no longer needed. Due to ImageMagick changes, calling it was
753 causing some options to be lost.
754
7552001-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
756
757 * lib/Image.cpp (fillRule): New method to specify the rule to use when filling drawn objects.
758
7592001-01-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
760
761 * lib/Image.cpp (erase): New method to reset image to background
762 color.
763 (strokeAntiAlias): New method to control antialiasing of stroked
764 objects.
765
7662001-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
767
768 * lib/Image.cpp (channel): Renamed method from 'layer' to match
769 equivalent change in ImageMagick (ChannelImage). Enumeration
770 names *Layer renamed to *Channel.
771
7722001-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
773
774 * lib/Magick++/Montage.h (strokeColor): New method.
775 (fillColor): New method.
776
777 * lib/Image.cpp (replaceImage): Revised logic so that an inValid
778 image should be returned if a NULL pointer is passed. Before this
779 change the existing image was preserved.
780 (label): Work-around ImageMagick SetImageAttribute bug.
781
7822001-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
783
784 * lib/Image.cpp : Adjusted to ImageMagick animation parameter API change.
785
7862000-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
787
788 * lib/Drawable.cpp (DrawableCompositeImage): Support specifying
789 composition rule.
790
7912000-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
792
793 * lib/Image.cpp (draw): Bugfix - the primitive string was not
794 properly null terminated. It is a wonder that the code usually
795 worked at all. Thanks to afatela@marktest.pt for reporting it.
796
7972000-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
798
799 * lib/Magick++/STL.h (deconstructImages): New STL function for
800 deconstructing an image list to assist with creating an animation.
801 (mosaicImages): New STL function for inlaying an image list to
802 form a single coherent picture.
803
8042000-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
805
806 * lib/Image.cpp (convolve): New method to convolve image using
807 user-supplied convolution matrix.
808 (unsharpmask): New method to replace image with a sharpened
809 version of the original image using the unsharp mask algorithm.
810
8112000-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
812
813 * : Adapted to ImageMagick API change which eliminates AnnotateInfo.
814
8152000-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
816
817 * lib/Magick++/STL.h (annotateImage): Brought into sync with
818 annotate methods in Image.
819
8202000-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
821
822 * lib/Image.cpp (annotate): Usage of Geometry parameter was
823 incorrect. Geometry parameter is used to specify bounding area.
824 This changes the interpretation for two of the annotate methods
825 (which probably weren't usable before).
826
8272000-11-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
828
829 * lib/Magick++/Color.h (alphaQuantum): Bugfix. Due to change in
830 treatment of opacity member, alphaQuantum() was not allowing value
831 to be set.
832
8332000-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
834
835 * lib/Drawable.cpp (DrawableFillRule): New class to specify fill
836 rule (see SVG's fill-rule).
837 (DrawableDashOffset): New class to specify initial offset in dash
838 array.
839 (DrawableDashArray): New class to specify a stroke dash pattern.
840 (DrawableStrokeLineCap): New class to specify the shape to be used
841 at the end of open subpaths when they are stroked.
842 (DrawableStrokeLineJoin): New class to specify the shape to be
843 used at the corners of paths (or other vector shapes) when they
844 are stroked.
845 (DrawableMiterLimit): New class to specify extension limit for
846 miter joins.
847
8482000-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
849
850 * lib/Image.cpp (annotate): Reimplement text rotation using affine
851 member of AnnotateInfo.
852 (strokeDashOffset): New method for specifying the dash offset to use for
853 drawing vector objects. Similar to SVG stroke-dashoffset.
854 (strokeDashArray): New method for specifying the dash pattern to use
855 for drawing vector objects. Similar to SVG stroke-dasharray
856 (strokeLineCap): New method to specify the shape to be used at the end
857 of open subpaths when they are stroked. Similar to SVG
858 stroke-linecap.
859 (strokLineJoin): New method to specify the shape to be used at the
860 corners of paths (or other vector shapes) when they are
861 stroked. Similar to SVG stroke-linejoin.
862 (strokeMiterLimit): New method to specify the miter limit when joining
863 lines using MiterJoin. Similar to SVG stroke-miterlimit.
864 (strokeWidth): Renamed lineWidth method to strokeWidth.
865
8662000-10-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
867
868 * lib/Magick++/Drawable.h (DrawableCompositeImage): Add a
869 short-form constructor to support specifying image location and
870 name, but without specifying rendered size (use existing image
871 size).
872
8732000-10-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
874
875 * lib/Magick++/Drawable.h (DrawablePopGraphicContext): New class
876 to pop graphic context.
877 (DrawablePushGraphicContext): New class to push graphic context.
878
879 * lib/Drawable.cpp (DrawableStrokeAntialias): New class to set
880 stroke antialiasing.
881 (DrawableTextAntialias): New class to set text antialiasing.
882
8832000-10-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
884
885 * lib/Image.cpp (transformOrigin): New method to set origin of
886 coordinate system for use when annotating with text or drawing
887 (transformRotation): New method to set rotation for use when
888 annotating with text or drawing
889 (transformScale): New method to set scale for use when annotating
890 with text or drawing.
891 (transformSkewX): New method to set skew for use in X axis when
892 annotating with text or drawing.
893 (transformSkewY): New method to set skew for use in Y axis when
894 annotating with text or drawing.
895 (transformReset): New method to reset transformation to default.
896
897 * lib/Drawable.cpp (DrawablePath): New class for drawing SVG-style
898 vector paths.
899 (PathArcArgs): New class. Argument for PathArcArgs & PathArcAbs.
900 (PathArcAbs): New class. Draw arc using absolute coordinates.
901 (PathArcRel): New class. Draw arc using relative coordinates.
902 (PathClosePath): New class. Close drawing path.
903 (PathCurvetoArgs): New class. Argument class for PathCurvetoAbs &
904 PathCurvetoRel.
905 (PathCurvetoAbs): New class. Cubic bezier, absolute coordinates
906 (PathCurvetoRel): New class. Cubic bezier, relative coordinates
907 (PathSmoothCurvetoAbs): New class. Cubic bezier, absolute
908 coordinates
909 (PathSmoothCurvetoRel): New class. Cubic bezier, relative
910 coordinates
911 (PathQuadraticCurvetoArgs): New class. Argument class for
912 PathQuadraticCurvetoAbs and PathQuadraticCurvetoRel.
913 (PathQuadraticCurvetoAbs): New class. Quadratic bezier, absolute
914 coordinates
915 (PathQuadraticCurvetoRel): New class. Quadratic bezier, relative
916 coordinates
917 (PathSmoothQuadraticCurvetoAbs): New class. Quadratic bezier,
918 absolute coordinates
919 (PathSmoothQuadraticCurvetoRel): New class. Quadratic bezier,
920 relative coordinates
921 (PathLinetoAbs): New class. Line to, absolute coordinates
922 (PathLinetoRel): New class. Line to, relative coordinates
923 (PathLinetoHorizontalAbs): New class. Horizontal lineto, absolute
924 coordinates
925 (PathLinetoHorizontalRel): New class. Horizontal lineto, relative
926 coordinates
927 (PathLinetoVerticalAbs): New class. Veritical lineto, absolute
928 coordinates.
929 (PathLinetoVerticalRel): New class. Vertical lineto, relative
930 coordinates.
931 (PathMovetoAbs): New class. Moveto, absolute coordinates
932 (PathMovetoRel): New class. Moveto, relative coordinates
933
9342000-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
935
936 * lib/Drawable.cpp (DrawableSkewX): New object to apply skew in X direction.
937 (DrawableSkewY): New object to apply skew in Y direction.
938
9392000-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
940
941 * lib/Image.cpp (edge): Change argument from 'unsigned int' to
942 'double' in order to match ImageMagick API.
943
9442000-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
945
946 * lib/Drawable.cpp (DrawableCompositeImage): Renamed from
947 DrawableImage.
948 (DrawableTextDecoration): Renamed form DrawableDecoration.
949 (all-classes): Complete re-write to write the drawing command to a
950 stream when draw() is invoked rather than at object construction
951 time. This may be somewhat slower for individual draw operations
952 but should be at least as fast for lists of drawing commands,
953 and is more flexible going into the future. Drawable classes now
954 inherit from DrawableBase but are passed into STL lists and Image
955 draw() methods via the surrogate class Drawable. The upshot of
956 all this is that the existing published API has not been altered
957 but things work much differently under the covers.
958
9592000-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
960
961 * lib/Drawable.cpp (DrawableStrokeColor): Renamed from DrawableStroke
962 (DrawableFillColor): Renamed from DrawableFill
963 (DrawableRotation): New class to influence object rotation.
964 (DrawableScaling): New class to influence object scaling.
965 (DrawableTranslation): New class to influence object translation.
966
9672000-10-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
968
969 * lib/Drawable.cpp (DrawableAffine): New class to influence object
970 scaling, rotation, and translation (as defined by SVG XML).
971 (DrawableAngle): New class to influence drawing angle.
972 (DrawableDecoration): New class to influence text decoration such
973 as underline.
974 (DrawableFill): New class to set object filling color.
975 (DrawableFillOpacity): New class to set opacity to use when
976 filling object.
977 (DrawableFont::): New class to set font.
978 (DrawableGravity): New class to set text placement gravity.
979 (DrawablePointSize): New class to set font point size.
980 (DrawableStroke): New class to set drawing stroke color.
981 (DrawableStrokeOpacity): New class to set drawing stroke opacity.
982 (DrawableStrokeWidth): New class to set drawing stroke width.
983
9842000-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
985
986 * lib/Drawable.cpp (DrawableImage): Added width and height
987 parameters to specify size to scale rendered image to. This is
988 actually a bug-fix since it seems that the correct drawing command
989 was no longer being generated.
990
9912000-09-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
992
993 * lib/Image.cpp (read): New overloaded method to read an image
994 based on an array of raw pixels, of specified type and mapping, in
995 memory.
996 (write): New overloaded method to write image to an array of
997 pixels, of specified type and mapping.
998 (Image): New overloaded constructor to construct an image based on
999 an array of raw pixels, of specified type and mapping, in memory.
1000
10012000-09-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1002
1003 * lib/Image.cpp (colorize): API change to match change in
1004 ImageMagick. Now accepts percentage of red, green, and blue to
1005 colorize with using specified pen color.
1006
10072000-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1008
1009 * lib/Magick++/Drawable.h: Reverted Coordinate implemenation back
1010 from and STL pair based implementation to a simple class. Maybe
1011 this will improve portability. It is more understandable anyway.
1012
10132000-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1014
1015 * lib/Options.cpp : Bugfix. Some DrawInfo attributes were not
1016 being updated. This lead to options like fontPointsize not
1017 changing the font.
1018
10192000-08-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1020
1021 * lib/Magick++/STL.h (blurImage, charcoalImage, embossImage,
1022 sharpenImage): Expand order_ argument to radius_ & sigma_
1023 arguments for more control (matches ImageMagick API change).
1024
1025 * lib/Image.cpp (blur, charcoal, emboss, sharpen): Expand order_
1026 argument to radius_ & sigma_ arguments for more control (matches
1027 ImageMagick API change).
1028
10292000-08-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1030
1031 * lib/Image.cpp (read): Check returned Image for embedded
1032 exception, as well as the existing parameter check. This fixes
1033 the bug that warnings are not reported.
1034
10352000-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1036
1037 * test/*.cpp demo/*.cpp: Added call to MagickIncarnate() to set
1038 ImageMagick install location for Windows. Hopefully this hack can
1039 be removed someday.
1040
10412000-07-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1042
1043 * lib/Image.cpp (colorFuzz): Changed type to 'double' from
1044 'unsigned int' to match change in ImageMagick.
1045
1046 * lib/Color.cpp (Color*): Added copy constructor from base class.
1047 (operator =): Added assignment operator from base class.
1048
10492000-06-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1050
1051 * lib/Magick++/Include.h : Changed enumeration FilterType to
1052 FilterTypes, and QuantumTypes to QuantumType in order to match
1053 last-minute API change in ImageMagick.
1054
10552000-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1056
1057 * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes()
1058 rather than GetIndexes().
1059
10602000-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1061
1062 * lib/Magick++/Montage.h (gravity): Type of gravity_ argument, and
1063 return value changed from 'unsigned int' to GravityType.
1064
10652000-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1066
1067 * lib/Drawable.cpp (DrawableArc, DrawableBezier, DrawablePolyline,
1068 RoundRectangle): Added support for new drawing objects.
1069
10702000-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1071
1072 * lib/Drawable.cpp: Removed all public methods which accept
1073 Coordinate arguments except those that accept lists of
1074 Coordinates. Converted remaining drawable object methods into
1075 individual classes which inherit from Drawable (e.g. "circle"
1076 becomes "DrawableCircle"). The constructor for each class is
1077 compatible with the original method. This results in annoying
1078 changes to user code but provides more implementation flexibility.
1079
10802000-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1081
1082 * lib/Drawable.cpp
1083 (fillEllipse,fillRectangle,fillCircle,fillPolygon): Removed
1084 methods. Object filling is now based on whether fillColor or
1085 penTexture are valid or not. This reflects ImageMagick internal
1086 changes.
1087
1088 * lib/Image.cpp (fillColor): New method to specify fill color when
1089 drawing objects.
1090 (strokeColor): New method to specify outline color when drawing
1091 objects.
1092 (penColor): Setting penColor now sets fillColor and
1093 strokeColor. Getting penColor retrieves the value of
1094 strokeColor. This supports backwards compatability.
1095
10962000-03-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1097
1098 * lib/Image.cpp (lineWidth): Type changed from unsigned int to double.
1099
11002000-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1101
1102 * lib/Magick++/STL.h (Magick):
1103
11042000-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1105
1106 * lib/Magick++/STL.h (blurImage,charcoalImage,edgeImage,embossImage,
1107 reduceNoiseImage,sharpenImage): Modified to support order of the
1108 pixel neighborhood. Backward compatable function objects constructors
1109 are provided for embossImage, and reduceNoiseImage.
1110
1111 * lib/Image.cpp (blur,charcoal,edge,emboss,reduceNoise,sharpen):
1112 Now accept unsigned int argument which represents the order of the
1113 pixel neighborhood (e.g. 3). This is not a backwards compatable
1114 change, however, backward compatable methods are provided for emboss,
1115 and reduceNoise.
1116
11172000-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1118
1119 * lib/Magick++/Pixels.h (Pixels): Moved Image pixel methods to
1120 Pixels class.
1121
11222000-02-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1123
1124 * lib/Image.cpp (annotate): Re-wrote to improve performance.
1125 (draw): Re-wrote to improve performance.
1126
11272000-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1128
1129 * lib/Drawable.cpp (text): Bugfix: support spaces in annotation text.
1130
11312000-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1132
1133 * lib/Magick++/STL.h (gaussianBlurImage): New function object to
1134 Gaussian blur image.
1135
1136 * lib/Image.cpp (gaussianBlur): New method to Gaussian blur image.
1137
11382000-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1139
1140 * lib/Image.cpp : Call-back based LastError class is eliminated in
1141 favor of ImageMagick 5.2's re-entrant ExceptionInfo reporting.
1142 This should make Magick++ thread safe under Win32.
1143
11442000-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1145
1146 * lib/Image.cpp (floodFillTexture): Fixed bug due to pixel pointer
1147 becoming invalid in ImageMagick function.
1148
11492000-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1150
1151 * lib/Image.cpp : Added locking to reference counting to ensure
1152 thread (pthread) safety.
1153
1154 * lib/Blob.cpp : Added locking to reference counting to ensure
1155 thread (pthread) safety.
1156
1157 * lib/LastError.cpp: Added support for thread specific data
1158 (pthreads) so that error reporting is thread safe.
1159
1160 * lib/Magick++/Thread.h: Added thread wrapper class to provide
1161 thread-safe locking (pthreads) to Magick++.
1162
11632000-01-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1164
1165 * lib/Image.cpp: Added methods getPixels, setPixels, syncPixels,
1166 readPixels, and writePixels, in order to provide low-level access
1167 to Image pixels. This approach (direct wrapper around ImageMagick
1168 functions) does not mean that the planned object-oriented wrapper
1169 has been forgotten, only that this wrapper is not ready yet, and
1170 users need to manipulate pixels *now*.
1171
11722000-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1173
1174 * lib/LastError.cpp: Complete re-implementation of LastError so
1175 that it hides its implementation. Also assures that all memory is
1176 explicitly deallocated at program exit to avoid the appearance of
1177 a leak.
1178
11792000-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1180
1181 * lib/Image.cpp (size): Bug-fix. Set image columns and rows as
1182 well as image options columns and rows.
1183
1184 * lib/Image.cpp :Depth parameters are now all unsigned in for consistency.
1185
1186 * lib/Image.cpp (write): Parameters for writing Blobs re-arranged
1187 again to hopefully be more sensible.
1188
1189 * lib/Magick++/STL.h: Bug-fix. Re-number scenes from zero when linking
1190 image range in container into a list. This provides expected results.
1191
11921999-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1193
1194 * lib/Image.cpp
1195 (write): Additional overloaded methods for BLOBs.
1196 (read): Additional overloaded methods for BLOBs. Re-ordered
1197 parameters for one existing method.
1198 (Image): Additional overloaded methods for BLOBs. Re-ordered
1199 parameters for one existing method.
1200
12011999-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1202
1203 * lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.
1204
12051999-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1206
1207 * lib/Image.cpp (medianFilter): New method.
1208
12091999-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1210
1211 * lib/Image.cpp (density): Bug fix. Was not setting image x & y density.
1212
12131999-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1214
1215 * lib/Image.cpp (page): psPageSize() is renamed to page() and now
1216 properly returns the attribute from the image.
1217
12181999-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1219
1220 * lib/Image.cpp: Rename transformColorSpace() to colorSpace().
1221 Added colorSpace() accessor method.
1222
12231999-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1224
1225 * lib/Color.cpp: Re-implemented PixelPacket pointer so that it is
1226 never NULL and added a 'valid' field for tracking object validity.
1227
12281999-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1229
1230 * lib/Image.cpp (quantizeError): Eliminated method.
1231
12321999-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1233
1234 * lib/Image.cpp (annotate & draw): Changed implementation to
1235 reflect change to the way AnnotateInfo is managed by ImageMagick.
1236
12371999-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1238
1239 * lib/Image.cpp (cacheThreshold): New method to set the pixel
1240 cache threshold.
1241
1242 * lib/Magick++/Include.h (Magick): Added new enumerations from
1243 classify.h.
1244
12451999-10-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1246
1247 * lib/Magick++/Options.h (fontPointsize): Argument is now a double
1248 to match change in ImageMagick.
1249
1250 * lib/Image.cpp (fontPointsize): Argument is now a double to match
1251 change in ImageMagick.
1252
12531999-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1254
1255 * lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at
1256 one rather than zero.
1257
12581999-10-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1259
1260 * lib/Image.cpp (Image): Fixed Image constructors from Blob. The
1261 image reference was not being instantiated as it should have been,
1262 causing a crash.
1263
12641999-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1265
1266 * lib/Blob.cpp: All blob length parameters are now of type size_t.
1267
1268 * lib/Image.cpp (write): Length estimate is now of type size_t.
1269
12701999-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1271
1272 * lib/Image.cpp (rotate): No longer accepts a crop option since
1273 ImageMagick no longer supports this.
1274 (shear): No longer accepts a crop option since ImageMagick no
1275 longer supports this.
1276
12771999-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1278
1279 * lib/Image.cpp:
1280 (rotate): No longer accepts sharpen argument.
1281 User must sharpen seperately if desired. This change is due to a
1282 similar change in ImageMagick 5.0.
1283 (condense): Removed method.
1284 (uncondense): Removed method.
1285 (condensed): Removed method.
1286 (pixelColor): Adapted to 5.0.
1287
1288 * lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick
1289 5.0's PixelPacket color representation.
1290
1291 * lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's
1292 PixelPacket color representation.
1293
12941999-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1295
1296 * lib/Image.cpp (condensed): Bug fix. The condensed() method was returning the opposite bool value than it should. Oops!
1297
12981999-09-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1299
1300 * lib/Magick++/Include.h (MagickCore): Eliminated requirement for
1301 including <magick/define.h>.
1302
13031999-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1304
1305 * lib/Image.cpp: Added accessor methods for other key ImageMagick
1306 structs.
1307
1308 * lib/Options.cpp (penTexture): Fixed bug with removing texture
1309 caused by change in Image constructor.
1310
1311 * lib/Image.cpp: Changed strategy such that an Image containing a
1312 null MagickCore::Image pointer is never constructed except for
1313 under error conditions. Removed existing checks for null image
1314 pointer on attribute methods.
1315
1316 Use image() and constImage() accessor methods as part of Image
1317 implementation in order to clean-up code and ensure
1318 const-correctness.
1319
13201999-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1321
1322 * lib/Magick++/STL.h (Magick): Added STL function readImages().
1323 Not tested yet.
1324 (Magick): Added STL function writeImages(). Not tested yet.
1325
1326 * lib/Image.cpp: Removed support for 'text' attribute as this is
1327 no longer present in ImageMagick as of 4.2.8.
1328
13291999-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1330
1331 * lib/Image.cpp (condense): Skip condensing image if already
1332 condensed.
1333 (uncondense): Skip uncondensing image if not condensed.
1334 (condensed): New method to test if image is condensed.
1335 (classType): New method which supports conversion of the image
1336 storage class. May result in loss of color information
1337 (quantization is used) if a DirectClass image is converted to
1338 PseudoClass.
1339
13401999-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1341
1342 * lib/Magick++/Color.h (Magick::Color): Color parameters are now
1343 stored in a MagickCore::RunlengthPacket structure which is
1344 referenced via a pointer. This structure is either allocated by a
1345 Magick::Color constructor or passed as an argument to a
1346 Magick::Color constructor so that it may refer to a
1347 MagickCore::Image pixel. The owner of the structure is managed so
1348 that the structure is only deleted if it was allocated by
1349 Magick::Color.
1350
13511999-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1352
1353 * overall : Removed 'Magick' prefix from all source file
1354 names. Moved class headers to Magick++ subdirectory. This should
1355 not break any code using the documented interface (via
1356 Magick++.h).
1357
13581999-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1359
1360 * lib/MagickImage.cpp (composite): Support composition placement
1361 by gravity like PerlMagick does.
1362
13631999-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1364
1365 * lib/MagickImage.cpp (Image): Added constructors to construct an
1366 Image from a BLOB.
1367
13681999-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1369
1370 * tests/manipulate.cpp (main): Wrote a basic sanity test for
1371 reading and writing BLOBS.
1372
13731999-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1374
1375 * lib/MagickImage.cpp (read): Added support for reading an encoded
1376 image stored in a BLOB. Uses new ImageMagick APIs introduced on
1377 July 21, 1999.
1378 (write): Added support for writing an encoded image to a BLOB.
1379
13801999-06-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1381
1382 * lib/MagickInclude.h : Use new <magick/api.h> interface to
1383 ImageMagick to avoid namespace-induced problems.
1384
1385 * configure.in : CPPFLAGS and LDFLAGS specified via the
1386 environment take precidence over flags from Magick-config.
1387
13881999-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1389
1390 * lib/MagickSTL.h (mapImages): New algorithm to map the sequence
1391 of images to the color map of a provided image.
1392 (quantizeImages): New algorithm to quantize a sequence of images
1393 to a common color map.
1394
13951999-05-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1396
1397 * lib/MagickBlob.cpp (updateNoCopy): New method to allow derived
1398 classes to insert data into the base class without making a copy
1399 of the data. This represents a transfer of ownership of the data
1400 from the derived class to the base class.
1401
14021999-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1403
1404 * lib/MagickColor.cpp (operator =): Adapted to new ImageMagick
1405 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1406
1407 * lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick
1408 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1409
14101999-05-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1411
1412 * lib/MagickBlob.cpp (Blob): Support default constructor for Blob.
1413
14141999-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1415
1416 * lib/MagickSTL.h (transformColorSpaceImage): New unary function object
1417 to invoke transformColorSpace on STL container object.
1418
1419 * lib/MagickImage.cpp (transformColorSpace): New method to
1420 transform the image data to a new colorspace.
1421
14221999-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1423
1424 * lib/MagickImage.cpp (ping): Re-implemented to match (requested)
1425 API change in ImageMagick 4.2.5. Method signature has changed to
1426 be like 'read'.
1427 (annotate): Added two new overloaded methods for text annotation
1428 in order to support the new rotated text capability in ImageMagick
1429 4.2.5. To accomplish this, the default for gravity had to be
1430 removed from several methods. This may impact existing code.
1431 Still not sure if this is the best set of method signatures.
1432
14331999-05-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1434
1435 * lib/MagickImage.cpp (ping): New method to obtain image size in
1436 bytes and geometry without the overhead of reading the complete
1437 image.
1438 (uncondense): New method to uncompress run-length encoded pixels
1439 into a simple array to make them easy to operate on.
1440
14411999-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1442
1443 * lib/MagickImage.cpp (comment): Passing an empty string as the
1444 comment results in no comment at all rather than a comment with no
1445 data.
1446
14471999-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1448
1449 * lib/MagickImage.cpp (iccColorProfile): Implemented method to set
1450 ICC color profile from opaque object in memory (must be formatted
1451 outside of Magick++).
1452 (iptcProfile): Implemented method to set IPTC profile from opaque
1453 object in memory (must be formatted outside of Magick++).
1454
1455 * lib/MagickBlob.cpp: New class to support managing user-supplied
1456 opaque Binary Large OBjects (BLOBS) in the API. Reference counted
1457 to improve semantics and to possibly reduce memory consumption.
1458
14591999-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1460
1461 * lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that
1462 shared library can be built.
1463
14641999-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1465
1466 * lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
1467 rather than std::string.
1468
14691999-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1470
1471 * lib/MagickColor.cpp (alpha): Added support for setting alpha via
1472 scaled-double to the Color class. The new method name is 'alpha'.
1473
14741999-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1475
1476 * lib/MagickColor.cpp: Added support for setting an alpha value
1477 (unscaled Quantum only) for use on DirectColor images that have
1478 matte enabled. This requires ImageMagick 4.2.2 dated April 13,
1479 1999 or later to compile since Cristy added a special flag to
1480 allow testing to see if the user has specified an opacity value:
1481 "I added XColorFlags to magick/classify.h. If DoMatte is set in
1482 color->flags then the opacity value is valid in color->pixel."
1483
14841999-04-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1485
1486 * demo/flip.cpp (main): New file. Demonstrates use of flipImage
1487 function object as well as morphImages algorithm.
1488
14891999-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1490
1491 * tests/color.cpp : New file to support testing the Magick::Color
1492 classes.
1493
1494 * lib/MagickOptions.cpp: The ImageInfo filter member is now
1495 ignored by ImageMagick (as of ImageMagick 4.2.2 April 10, 1998) so
1496 support for setting it is removed. The Image filter member is
1497 still updated. According to Cristy, this ImageMagick version
1498 removes automatic sharpening of resized images. The blur member
1499 is added to the Image structure. A blur value < 1 causes the image
1500 to be sharpened when resizing while a value > 1 leaves the image
1501 blurry. Magick++ does not yet support the blur member.
1502
1503