blob: 88de1bac5a3922d675690de96b3736ebb3b752b9 [file] [log] [blame]
cristycbbf6df2010-06-16 12:53:41 +000012010-06-16 6.6.2-2 Cristy <quetzlzacatenango@image...>
2 * Patch for compile problem in mapImages of the STL header.
3
cristyff024b42010-02-21 22:55:09 +000042010-02-21 6.5.9-10 Cristy <quetzlzacatenango@image...>
5 * Add extent() to extend the image as defined by the geometry, gravity, and
6 image background color.
cristyf5c70822009-12-06 15:36:57 +00007
cristy529fcc22009-11-14 18:15:08 +000082009-11-14 6.5.7-8 Cristy <quetzlzacatenango@image...>
9 * Add forwardFourierTransform(), inverseFourierTransform(), and
10 inverseFourierTransformImage() methods to implement forward and inverse
11 discrete Fourier transform (DFT / IFT).
12
cristyd50017c2009-09-29 00:00:10 +0000132009-09-28 6.5.6-6 Cristy <quetzlzacatenango@image...>
14 * Add splice() method to splice the background color into the image.
15
cristy3ed852e2009-09-05 21:47:34 +0000162009-04-01 6.5.1-1 Cristy <quetzlzacatenango@image...>
17 * Add virtualPixelMethod() method for image and options, required for
18 distort().
19
202008-09-09 6.4.3-7 Cristy <quetzlzacatenango@image...>
21 * Use ImagesToBlob() rather than ImageToBlob() for writeImages().
22
232007-10-02 6.3.6-7 Cristy <quetzlzacatenango@image...>
24 * Define USE_MAP for Magick++/tests/colorHistogram.cpp (patch provided by
25 albert chin <china@thewr...>).
26
272007-04-10 6.3.3-7 Cristy <quetzlzacatenango@image...>
28 * Add colorspaceType(RGBColorspace) to set RGB colorspace before an
29 image read (useful to convert CMYK Potscript to RGB).
30
312006-02-05 6.3.2-3 Cristy <quetzlzacatenango@image...>
32 * Clear exception in throwException() method.
33
342006-01-16 6.3.2-0 Cristy <quetzlzacatenango@image...>
35 * Add extent() method to extend the image as defined by the geometry.
36
372003-12-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
38
39 * demo/analyze.cpp (main): New program to demonstrate using the
40 'analyze' process module.
41 * demo/Makefile.am: Add rules to build analyze program.
42 * lib/Image.cpp (process): New method to execute process modules.
43 * lib/Image.cpp (attribute): New method to get and set named image
44 attributes.
45
462003-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
47
48 * lib/Color.cpp: Ensure that all non-default constructors set
49 opacity to opaque.
50
512003-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
52
53 * lib/Magick++/STL.h (colorHistogram): If map key is not const,
54 then implicit type conversion occurs. Sun's C++ compiler doesn't
55 seem to handle that. The map key is now defined as const in
56 the insert arguments.
57
582003-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
59
60 * tests/Makefile.am: Add build support for colorHistogram.cpp.
61 * tests/colorHistogram.cpp: New test program to test retrieving
62 color histograms from the image using colorHistogram().
63 * lib/Magick++/STL.h (colorHistogram): Added new template function
64 to retrieve a color histogram into a user-provided container.
65 Verified to work when using STL <vector> and <map> as the target
66 container types. When <map> is used, a user-specified color may
67 be used to perform lookups in the map to obtain the usage count for
68 that color.
69 * lib/Color.cpp (operator >=): Insufficient resolution was being
70 provided in order to reliably sort color objects in STL
71 containers. The updated algorithm should be fail-safe.
72
732003-08-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
74
75 * lib/Image.cpp (channelDepth): New method to set or get the
76 modulus depth for a specified channel.
77
782003-08-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
79
80 * lib/Magick++/Include.h (Magick): Added support for
81 CopyCyanCompositeOp, CopyMagentaCompositeOp,
82 CopyYellowCompositeOp, and CopyBlackCompositeOp, composition
83 operators.
84
852003-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
86
87 * lib/Image.cpp (depth): Method now only updates the
88 Image/ImageInfo depth member and retrieves the value of the Image
89 depth member.
90 (modulusDepth): New method to inspect the pixels for actual
91 modulus depth, or update/reduce the pixels to a specified modulus
92 depth. The depth method was performing this function so any code
93 which depended on the depth method to compute or set the modulus
94 depth should be updated to use modulusDepth() instead.
95
962003-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
97
98 * lib/Image.cpp (matte): If a new matte channel is created,
99 initialize it to opaque. Likewise, if the matte channel is
100 eliminated, initialize the unused channel to opaque.
101
1022003-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
103
104 * demo/demo.cpp (main): Don't crop logo image. *
105 * *.h, *.cpp: Include "Magick++/Include.h" before including any
106 compiler or system header in order to ensure that LFS defines are
107 properly applied. Inspired by patch from Albert Chin-A-Young.
108
1092003-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
110
111 * lib/Magick++/Include.h: Needed to import ThrowLoggedException.
112 * lib/Exception.cpp (throwException): Add originating source
113 module, source line, and function name (if available) to exception
114 report. This is useful in order to determine the exact conditions
115 that lead to the exception being thrown.
116 * lib/Magick++/Exception.h: Added ErrorCoder, WarningCoder,
117 ErrorConfigure, WarningConfigure, ErrorDraw, WarningDraw,
118 ErrorImage, WarningImage, ErrorMonitor, WarningMonitor,
119 ErrorRegistry, WarningRegistry, ErrorStream, WarningStream,
120 ErrorType, and WarningType, exception classes to support the full
121 set of exceptions that ImageMagick can throw.
122
1232003-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
124
125 * lib/CoderInfo.cpp (CoderInfo): Applied compilation fix from
126 Mike Chiarappa to compile using Borland C++.
127
1282003-06-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
129
130 * lib/Geometry.cpp (string): Throw an exception if a string is
131 requested from an invalid geometry object.
132
1332003-06-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
134
135 * lib/Geometry.cpp (operator =): If GetGeometry returns NoValue,
136 then assign an invalid geometry object to cause an exception if
137 the geometry is then used.
138
1392003-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
140
141 * lib/Magick++/Exception.h (ErrorModule): Added class to handle
142 module errors.
143 * lib/Magick++/Exception.h (WarningModule) Added class to handle
144 module warnings.
145
1462003-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
147
148 * lib/Magick++/STL.h (coderInfoList): Use GetMagickInfoArray to
149 access coder list.
150
1512003-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
152
153 * lib/Magick++/STL.h (affineTransformImage): Add function object
154 contributed by Vladimir Lukianov to apply an affine transform to
155 the image.
156 * lib/Image.cpp (affineTransform): Added method contributed by
157 Vladimir Lukianov to apply an affine transform to the image.
158
1592003-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
160
161 * lib/Magick++/Include.h: Decided to back out change
162 which used the _VISUALC_ define to trigger inclusion of
163 <sys/types.h>.
164
1652003-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
166
167 * lib/Magick++/Include.h: If _VISUALC_ is defined,
168 include <sys/types.h>. This ensures that this necessary
169 header is included even if HAVE_SYS_TYPES_H is not defined
170 in magick-config.h.
171
1722003-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
173
174 * lib/Image.cpp (InitializeMagick): InitializeMagick is
175 now a C++ function rather than a namespace inclusion.
176 An atexit() handler is registered to invoke DestroyMagick
177 when the program exits. Relying on static deconstruction
178 to invoke DestroyMagick proved to be unreliable due to
179 translation unit destruction uncertainty.
180
1812003-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
182
183 * lib/Image.cpp (Image::Image (MagickCore::Image* image_)):
184 Incorporated recommended fix from Jukka Manner to avoid
185 a scenario which leaks an Options object.
186 * tests/coalesceImages.cpp: Updated to use modified
187 coalesceImages() interface.
188 * lib/Magick++/STL.h (coalesceImages): Replaced implementation
189 with one from Felix Heimbrecht. The template signature has
190 changed to return a new image sequence. This template API
191 silently ceased to funtion due to an ImageMagick CoalesceImages
192 API change.
193
1942003-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
195
196 * tests/readWriteBlob.cpp (main): Added check for
197 stream read failure when reading blob data.
198 (class myBlob): Use get rather than read.
199
2002003-03-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
201
202 * tests/attributes.cpp : Change in the way that Magick++
203 retrieves density caused tests to fail. Density now defaults
204 to 72x72 (ImageMagick default) rather than invalid.
205
2062003-03-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
207
208 * demo/Makefile.am (CLEANFILES): Fix clean target to remove
209 *_out.mvg output files as well.
210 * demo/zoom.cpp: Added a command-line parser for dash
211 arguments as well as an image "resample" capability.
212 * lib/Image.cpp (density): Obtain density from Image
213 rather than ImageInfo if the Image is valid.
214
2152003-03-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
216
217 * lib/Makefile.am : Added rules to install ImageMagick++.pc.
218 * lib/ImageMagick++.pc.in : Added pkgconfig file for
219 -lImageMagick++.
220
2212003-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
222
223 * lib/Image.cpp (colorSpace): Pass image->colorspace to
224 TransformRGBColorspace.
225
2262003-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
227
228 * lib/Magick++/STL.h (writeImages): Should have been invoking
229 WriteImages rather than WriteImage!
230
2312003-01-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
232
233 * lib/Magick++/Include.h: Add HSL and HWB colorspace
234 transformation support.
235
2362003-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
237
238 * lib/Image.cpp (colorSpace): Support colorspace transforms
239 other than to and from RGB by translating to RGB as an intermediate
240 step.
241
2422002-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
243
244 * lib/Drawable.cpp: Added DrawablePushClipPath,
245 DrawablePopClipPath, and DrawableClipPath. Implementation
246 contributed by Vladimir <lvm@integrum.ru>.
247
2482002-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
249
250 * lib/Image.cpp (colorMapSize): New method to set, or return
251 the colormap size.
252
2532002-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
254
255 * lib/Image.cpp (adaptiveThreshold): New method.
256
2572002-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
258
259 * lib/Magick++/STL.h (coderInfoList): Intentionally ignore missing
260 delegate exceptions.
261
2622002-09-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
263
264 * lib/Options.cpp (textEncoding): Had forgotten to implement
265 textEncoding!
266
2672002-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
268
269 * lib/Color.cpp (Color): Use of 'new' and 'delete' in inlines was
270 causing memory allocation/deallocation problems for users of the
271 DLL build. Problem was identified by Marc Iwan.
272
2732002-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
274
275 * lib/Image.cpp (compare): New method to compare current image
276 with a reference image.
277
2782002-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
279
280 * lib/Image.cpp (textEncoding): New method to allow setting the
281 default text encoding (e.g. "UTF-8").
282
283 * lib/Drawable.cpp (DrawableText): Added an alternate constructor
284 to allow specifying the text encoding (e.g. "UTF-8").
285
2862002-08-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
287
288 * Overall: Now compiles as a DLL using Visual C++.
289
2902002-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
291
292 * lib/Image.cpp (profile): Added method to store, delete, or
293 retrieve named application profiles.
294
2952002-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
296
297 * lib/Image.cpp (type): Set the ImageInfo type attribute when
298 setting the image type. If the type attribute is set to something
299 other than UndefinedType (implying that the user has set a desired
300 output image type), then return that as the image type, otherwise
301 use GetImageType() to evaluate the image type.
302
3032002-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
304
305 * lib/Drawable.cpp (DrawableTextUnderColor): New class to set the
306 text undercolor. When text undercolor is set, a rectangle of the
307 specified color is rendered under text annotations.
308
3092002-05-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
310
311 * Magick++ library no longer depends on iostreams at all.
312
3132002-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
314
315 * lib/Image.cpp (throwImageException): ExceptionInfo was not being
316 properly initialized. This could cause some errors to cause an
317 abort in error.c rather than throwing an exception.
318
3192002-04-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
320
321 * lib/Image.cpp (draw): Use draw.h drawing APIs to draw on image.
322 This means that MVG output no longer comes from code in
323 Drawable.cpp.
324
3252002-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
326
327 * lib/STL.cpp: Moved function object implementations from STL.h to
328 STL.cpp.
329
3302002-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
331
332 * lib/Image.cpp (getConstPixels): Changed offset parameter type
333 from 'unsigned int' to 'int'.
334 (getPixels): Changed offset parameter type from 'unsigned int' to
335 'int'.
336 (setPixels): Changed offset parameter type from 'unsigned int' to
337 'int'.
338 (cacheThreshold): Changed argument type from 'const long' to
339 'const int'.
340 (matteFloodfill): Changed offset parameter type from 'const long' to
341 'const int'.
342
343 * lib/Pixels.cpp (getConst): New method to return read-only pixels.
344 (get): Offset parameter types changed from 'unsigned int' to 'int'.
345
3462002-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
347
348 * lib/Magick++/Drawable.h (DrawableDashOffset): Change dashoffset
349 type to 'double' rather than 'unsigned int' in order to match
350 ImageMagick.
351
352 * lib/Drawable.cpp (DrawableDashArray): Change dasharray type to
353 'double' rather than 'unsigned int' in order to match
354 ImageMagick. Previous 'unsigned int' methods remain for
355 compatability reasons.
356
3572002-04-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
358
359 * lib/Drawable.cpp (DrawableCompositeImage): Always output
360 composite images as inlined Base64.
361
3622002-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
363
364 * lib/Drawable.cpp (DrawableCompositeImage): If magick attribute
365 string is specified, then composite image is supplied to
366 ImageMagick as inlined Base64 rather than by MPRI reference.
367
368 * lib/Blob.cpp (base64): Added methods to update Blob with data
369 from Base64-encoded string, or to return a Base64-encoded string
370 from Blob. Still needs documentation.
371
3722002-04-09 Dom Lachowicz <cinamod@hotmail.com>
373
374 * lib/Image.cpp (Image::ping): Added PingBlob function
375
3762002-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
377
378 * lib/Drawable.cpp (DrawableDashArray::operator=): Added missing
379 assignment operator (fixes a bug).
380 (DrawableDashArray::DrawableDashArray): Added missing copy
381 constructor (fixes a bug).
382
383 * lib/Image.cpp (oilPaint): Changed argument type from unsigned
384 int to double.
385 (chromaBluePrimary): Changed argument type from float to double.
386 (chromaGreenPrimary): Changed argument type from float to double.
387 (chromaRedPrimary): Changed argument type from float to double.
388 (chromaWhitePoint): Changed argument type from float to double.
389 (getConstPixels): Changed argument type of x_ & _y from 'int' to
390 'unsigned int'.
391 (getPixels): Changed argument type of x_ & _y from 'int' to
392 'unsigned int'.
393
3942002-04-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
395
396 * lib/Image.cpp (debug): Added method to set ImageMagick debug
397 flag so that it prints debugging information while it runs.
398
3992002-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
400
401 * lib/Drawable.cpp: Fixed a bunch of bugs related to
402 DrawableCompositeImage, DrawableFont, and inconsistencies
403 discovered by Gimpel lint.
404
4052002-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
406
407 * lib/Image.cpp (draw): Properly delimit individual drawing
408 commands so that MVG output is correct.
409
4102002-03-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
411
412 * lib/Drawable.cpp (DrawableViewbox): MVG syntax wasn't correct.
413
414 * lib/Image.cpp (draw): Fix algorithm used to append newlines to
415 MVG commands so that draw() may be invoked multiple times while
416 still producing valid MVG.
417
4182002-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
419
420 * lib/Drawable.cpp (DrawableViewbox): New class to allow setting
421 the MVG output size.
422
4232002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
424
425 * lib/Drawable.cpp (print): Changed "mpr:" to "mpri:" in order to
426 *finally* get DrawableCompositeImage to work as intended.
427
428 * lib/Image.cpp (registerId): Bugfix. Register using
429 sizeof(MagickCore::Image) rather than sizeof(Image).
430
4312002-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
432
433 * lib/Drawable.cpp (DrawableCompositeImage): Had failed to
434 initialize width and height in object to image width and height.
435
4362002-02-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
437
438 * lib/Magick++/STL.h (endianImage): New class to specify the
439 endian option for formats which support this notion (e.g. TIFF).
440
441 * lib/Image.cpp (endian): New method to specify the endian option
442 for formats which support this notion (e.g. TIFF).
443
4442002-02-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
445
446 * lib/Drawable.cpp (DrawableFont): Support specifying a font via
447 font-family, font-style, font-weight, and font-stretch. Wildcard
448 matches are supported.
449
4502002-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
451
452 * lib/Image.cpp (charcoal): Replace Magick++'s charcoal effect
453 with the output of ImageMagick's CharcoalImage function in order
454 to ensure consistency.
455
456 * lib/Magick++/CoderInfo.h (MatchType): Scope the MatchType
457 enumeration to the CoderInfo class so these enumeration names can
458 be re-used elsewhere without conflict. This results in a minor
459 API change to the coderInfoList() templated function since
460 enumerations must be specified like "CoderInfo::TrueMatch" rather
461 than just "TrueMatch". Hopefully not a problem since this
462 function and class were not documented outside of the headers
463 until this release.
464
4652002-02-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
466
467 * lib/Magick++/STL.h (coderInfoList): Finally wrote some
468 documentation.
469
4702002-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
471
472 * lib/Options.cpp : Use DestroyImageList() rather than DestroyImage().
473
474 * lib/Geometry.cpp (operator =): Use GetPageGeometry() rather than
475 PostscriptGeometry() to parse geometry specifications containing a
476 page size.
477
4782002-01-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
479
480 * Remove bogus cast of blob data in readImages().
481
4822002-01-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
483
484 * lib/Image.cpp (throwImageException): Throwing exceptions was
485 leaking memory.
486
487 * lib/Exception.cpp (throwException): Throwing exceptions was
488 leaking memory.
489
490 * lib/Image.cpp (replaceImage): Updated to properly handle
491 registration ids.
492 (modifyImage): Updated to properly handle registration ids.
493
4942002-01-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
495
496 * lib/Drawable.cpp (Magick::DrawableGravity::print):
497 Bugfix. Remove "Gravity" from the end of each gravity
498 specification string. Reported as PR#1084 by stefan@dotify.com.
499
5002002-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
501
502 * lib/Image.cpp, Magick++/Include.h: Use DestroyImageList() rather
503 than DestroyImages().
504
5052002-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
506
507 * lib/Magick++/Options.h (antiAlias): Bugfix, set
508 drawInfo->text_antialias to control text antialiasing.
509
5102002-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
511
512 * lib/Magick++/Include.h : Imported new composition operators to
513 namespace: NoCompositeOp, DarkenCompositeOp, LightenCompositeOp,
514 HueCompositeOp, SaturateCompositeOp, ValueCompositeOp,
515 ColorizeCompositeOp, LuminizeCompositeOp, ScreenCompositeOp,
516 OverlayCompositeOp.
517
5182001-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
519
520 * lib/Image.cpp (strokePattern): New method to specify image to
521 use as pattern while drawing stroked-outlines of drawn objects.
522 (fillPattern): New method to specify image to use as pattern while
523 filling drawn objects.
524 (penTexture): Method is officially deprecated. Don't use anymore.
525 (penColor): Method is officially deprecated. Don't use anymore.
526
527 * lib/Drawable.cpp (DrawablePushPattern): Support pushing
528 (starting) pattern definition.
529 (DrawablePopPattern): Support popping (terminating) pattern
530 definition.
531
5322001-12-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
533
534 * lib/Drawable.cpp (DrawableCompositeImage): Read image
535 immediately if provided by filename, register with peristent
536 registry, and pass as perisistant image type.
537 (DrawableCompositeImage): Support specifying Image in memory.
538 Passed as perisistant image type.
539
5402001-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
541
542 * lib/Color.cpp (operator std::string): Color string buffer was
543 one character too short!
544
5452001-12-20 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
546
547 * lib/TypeMetric.cpp (characterWidth): Eliminate method.
548 (characterHeight): Eliminate method.
549 (all remaining methods): Change return type to 'double'. Fix
550 documentation in source files to reflect that units are in pixels
551 rather than points.
552 (descent): Renamed method from 'decent' to 'descent'.
553
5542001-11-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
555
556 * lib/Image.cpp (Magick): Invoke DestroyMagick() to clean up
557 ImageMagick allocations.
558
559 * lib/Magick++/Include.h (ImageType): Added some missing enums to
560 Magick namespace.
561
5622001-11-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
563
564 * lib/Magick++/CoderInfo.h (CoderInfo): Syntax fix.
565 ImageMagick bug #975.
566
567 * lib/Image.cpp (draw): Delete ostrstream data when it is no
568 longer needed. ImageMagick bug #988.
569
5702001-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
571
572 * lib/Image.cpp (pixelColor): Implementation didn't handle pixels
573 indexes correctly. Now it does.
574
5752001-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
576
577 * lib/Image.cpp (matteFloodfill): Coordinates are long values.
578 (floodFillOpacity): New method to floodfill opacity across pixels
579 matching color (within fuzz-factor) at point. Similar to
580 matteFloodfill except that color is selected from starting point.
581
5822001-10-29 Bob Friesenhahn <bfriesen@sun1107.ssd.usa.alcatel.com>
583
584 * lib/Image.cpp (strokeDashArray): Change to type double.
585 (strokeDashOffset): Change to type double.
586
5872001-10-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
588
589 * lib/Geometry.cpp (Geometry): Add constructor from
590 MagickCore::RectangleInfo.
591
592 * lib/Image.cpp (boundingBox): Method to return smallest bounding
593 box enclosing non-border pixels.
594
5952001-10-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
596
597 * lib/Image.cpp (getConstIndexes): Add method to obtain read-only
598 pixel indexes.
599 (getIndexes): Add method to obtain read-write pixel indexes.
600 (Image::Image): Send warnings from Image constructor to cerr
601 rather than throwing.
602
603 * lib/Color.cpp (Color(PixelPacket&)): Change argument to const
604 PixelPacket& as it should have been from the beginning.
605
606 * lib/Image.cpp (pixelColor): Reimplemented to be a const method.
607
6082001-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
609
610 * lib/Image.cpp (getConstPixels): New method for returning a
611 read-only pixel view. Still requires documentation.
612
613 * lib/Magick++/STL.h (coderInfoList): Fixed compilation problem
614 when compiling with Visual C++.
615
6162001-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
617
618 * lib/Magick++/Color.h (scaleQuantumToDouble): Add polymorphic
619 version that accepts double to avoid downconversion error.
620
6212001-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
622
623 * lib/Magick++/Color.h (scaleQuantumToDouble): Cast Quantum to
624 double prior to division. Hopefully fix bug.
625
6262001-10-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
627
628 * lib/Magick++/Color.h (Color(const std::string)): Pass argument by reference.
629 * (operator=): Pass argument by const reference.
630
6312001-09-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
632
633 * lib/Magick++/STL.h (coderInfoList): New function to support
634 obtaining format coder information (as a list of type CoderInfo).
635
636 * lib/CoderInfo.cpp (CoderInfo): New class to support obtaining
637 format coder information.
638
6392001-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
640
641 * lib/Image.cpp (depth): Use GetImageDepth and SetImageDepth
642 rather than just getting/setting depth attributes.
643
644 * lib/Magick++/STL.h (opacityImage): New unary function object to
645 set, or attenuate, image pixel opacity throughout the image.
646
647 * lib/Image.cpp (opacity): New method to set, or attenuate, image
648 pixel opacity throughout the image.
649
650 * lib/Magick++/STL.h (typeImage): New unary function object to set
651 image type.
652
653 * lib/Image.cpp (type): Added ability to set image type.
654
6552001-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
656
657 * lib/Image.cpp (write(Blob)): Tell blob to use malloc allocator.
658
659 * lib/Blob.cpp (updateNoCopy): Added parameter so that user can
660 specify the allocation system (malloc or new) the memory came
661 from. Defaults to C++ memory allocator.
662
6632001-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
664
665 * lib/Image.cpp (fileSize): Decided to change return type to off_t
666 for increased range and portability.
667
6682001-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
669
670 * lib/Image.cpp (fileSize): Changed return value to double.
671
6722001-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
673
674 * lib/Image.cpp (colorMap): Allocate a colormap if it does not
675 already exist.
676
677 * lib/Pixels.cpp (indexes): Don't attempt to validate image type.
678
679 * lib/Image.cpp (colorMap): Optimized more for performance.
680
6812001-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
682
683 * lib/Image.cpp (fontTypeMetrics): New method to support
684 retrieving font metrics.
685
686 * lib/TypeMetric.cpp : New class to support font metrics
687 information.
688
6892001-09-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
690
691 * lib/Magick++/Color.h (scaleDoubleToQuantum): Inline static
692 method made from previous ScaleDoubleToQuantum #define.
693 (scaleQuantumToDouble): Inline static method made from previous
694 ScaleQuantumToDouble #define. Helps avoid possibility of clash
695 with user code.
696
6972001-08-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
698
699 * lib/Image.cpp (colorMap): Automagically extend colormap if
700 specified index is past end of current colormap. Colormap is
701 limited to a maximum depth of QuantumRange entries.
702
7032001-08-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
704
705 * lib/Image.cpp (clipMask): New method to add a clip mask to the
706 image. Adds clipping to any image operation wherever the clip
707 mask image is tranparent.
708
7092001-08-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
710
711 * lib/Drawable.cpp (print): Add single quotes around file names
712 and font specifications.
713
7142001-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
715
716 * lib/Image.cpp (read): Ensure that only a single image frame is read.
717
7182001-07-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
719
720 * lib/Magick++/STL.h (flattenImages): New function to flatten a
721 layered image.
722
723 * lib/Montage.cpp (Montage): Montage initial defaults are no
724 longer drawn from ImageInfo. MontageInfo structure is entirely
725 filled out by updateMontageInfo();
726
7272001-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
728
729 * lib/Montage.cpp (updateMontageInfo): Bugfix; colors which were
730 intentionally specified as invalid (unset) were being ignored.
731 This produced unattractive label text when doing a montage.
732
7332001-07-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
734
735 * lib/Magick++/STL.h (medianFilterImage): Changed argument from
736 unsigned int to const double.
737 (fillColorImage): New method.
738 (strokeColorImage): New method.
739 (isValidImage): New method.
740
741 * lib/Magick++/Image.h (edge): Change argument from unsigned int to double.
742 (medianFilter): Changed argument from unsigned int to const double.
743
744 * lib/Magick++/STL.h (edgeImage): Change argument from unsigned int to double.
745
746 * demo/demo.cpp (main): Updated to match PerlMagick demo.
747
7482001-06-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
749
750 * lib/Magick++/STL.h (shaveImage): New function to shave edges from image.
751
752 * lib/Image.cpp (shave): New method to shave edges from image.
753
7542001-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
755
756 * lib/Image.cpp (quantize): Remove conditions on whether
757 quantization should be done. Now quantization is always done.
758
7592001-06-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
760
761 * lib/Magick++/Image.h (blur,charcoal,emboss,sharpen): Changed
762 radius and sigma parameters to match current ImageMagick defaults.
763
7642001-02-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
765
766 * lib/Options.cpp (updateDrawInfo): The updateDrawInfo() method
767 was no longer needed. Due to ImageMagick changes, calling it was
768 causing some options to be lost.
769
7702001-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
771
772 * lib/Image.cpp (fillRule): New method to specify the rule to use when filling drawn objects.
773
7742001-01-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
775
776 * lib/Image.cpp (erase): New method to reset image to background
777 color.
778 (strokeAntiAlias): New method to control antialiasing of stroked
779 objects.
780
7812001-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
782
783 * lib/Image.cpp (channel): Renamed method from 'layer' to match
784 equivalent change in ImageMagick (ChannelImage). Enumeration
785 names *Layer renamed to *Channel.
786
7872001-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
788
789 * lib/Magick++/Montage.h (strokeColor): New method.
790 (fillColor): New method.
791
792 * lib/Image.cpp (replaceImage): Revised logic so that an inValid
793 image should be returned if a NULL pointer is passed. Before this
794 change the existing image was preserved.
795 (label): Work-around ImageMagick SetImageAttribute bug.
796
7972001-01-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
798
799 * lib/Image.cpp : Adjusted to ImageMagick animation parameter API change.
800
8012000-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
802
803 * lib/Drawable.cpp (DrawableCompositeImage): Support specifying
804 composition rule.
805
8062000-12-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
807
808 * lib/Image.cpp (draw): Bugfix - the primitive string was not
809 properly null terminated. It is a wonder that the code usually
810 worked at all. Thanks to afatela@marktest.pt for reporting it.
811
8122000-12-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
813
814 * lib/Magick++/STL.h (deconstructImages): New STL function for
815 deconstructing an image list to assist with creating an animation.
816 (mosaicImages): New STL function for inlaying an image list to
817 form a single coherent picture.
818
8192000-12-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
820
821 * lib/Image.cpp (convolve): New method to convolve image using
822 user-supplied convolution matrix.
823 (unsharpmask): New method to replace image with a sharpened
824 version of the original image using the unsharp mask algorithm.
825
8262000-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
827
828 * : Adapted to ImageMagick API change which eliminates AnnotateInfo.
829
8302000-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
831
832 * lib/Magick++/STL.h (annotateImage): Brought into sync with
833 annotate methods in Image.
834
8352000-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
836
837 * lib/Image.cpp (annotate): Usage of Geometry parameter was
838 incorrect. Geometry parameter is used to specify bounding area.
839 This changes the interpretation for two of the annotate methods
840 (which probably weren't usable before).
841
8422000-11-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
843
844 * lib/Magick++/Color.h (alphaQuantum): Bugfix. Due to change in
845 treatment of opacity member, alphaQuantum() was not allowing value
846 to be set.
847
8482000-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
849
850 * lib/Drawable.cpp (DrawableFillRule): New class to specify fill
851 rule (see SVG's fill-rule).
852 (DrawableDashOffset): New class to specify initial offset in dash
853 array.
854 (DrawableDashArray): New class to specify a stroke dash pattern.
855 (DrawableStrokeLineCap): New class to specify the shape to be used
856 at the end of open subpaths when they are stroked.
857 (DrawableStrokeLineJoin): New class to specify the shape to be
858 used at the corners of paths (or other vector shapes) when they
859 are stroked.
860 (DrawableMiterLimit): New class to specify extension limit for
861 miter joins.
862
8632000-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
864
865 * lib/Image.cpp (annotate): Reimplement text rotation using affine
866 member of AnnotateInfo.
867 (strokeDashOffset): New method for specifying the dash offset to use for
868 drawing vector objects. Similar to SVG stroke-dashoffset.
869 (strokeDashArray): New method for specifying the dash pattern to use
870 for drawing vector objects. Similar to SVG stroke-dasharray
871 (strokeLineCap): New method to specify the shape to be used at the end
872 of open subpaths when they are stroked. Similar to SVG
873 stroke-linecap.
874 (strokLineJoin): New method to specify the shape to be used at the
875 corners of paths (or other vector shapes) when they are
876 stroked. Similar to SVG stroke-linejoin.
877 (strokeMiterLimit): New method to specify the miter limit when joining
878 lines using MiterJoin. Similar to SVG stroke-miterlimit.
879 (strokeWidth): Renamed lineWidth method to strokeWidth.
880
8812000-10-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
882
883 * lib/Magick++/Drawable.h (DrawableCompositeImage): Add a
884 short-form constructor to support specifying image location and
885 name, but without specifying rendered size (use existing image
886 size).
887
8882000-10-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
889
890 * lib/Magick++/Drawable.h (DrawablePopGraphicContext): New class
891 to pop graphic context.
892 (DrawablePushGraphicContext): New class to push graphic context.
893
894 * lib/Drawable.cpp (DrawableStrokeAntialias): New class to set
895 stroke antialiasing.
896 (DrawableTextAntialias): New class to set text antialiasing.
897
8982000-10-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
899
900 * lib/Image.cpp (transformOrigin): New method to set origin of
901 coordinate system for use when annotating with text or drawing
902 (transformRotation): New method to set rotation for use when
903 annotating with text or drawing
904 (transformScale): New method to set scale for use when annotating
905 with text or drawing.
906 (transformSkewX): New method to set skew for use in X axis when
907 annotating with text or drawing.
908 (transformSkewY): New method to set skew for use in Y axis when
909 annotating with text or drawing.
910 (transformReset): New method to reset transformation to default.
911
912 * lib/Drawable.cpp (DrawablePath): New class for drawing SVG-style
913 vector paths.
914 (PathArcArgs): New class. Argument for PathArcArgs & PathArcAbs.
915 (PathArcAbs): New class. Draw arc using absolute coordinates.
916 (PathArcRel): New class. Draw arc using relative coordinates.
917 (PathClosePath): New class. Close drawing path.
918 (PathCurvetoArgs): New class. Argument class for PathCurvetoAbs &
919 PathCurvetoRel.
920 (PathCurvetoAbs): New class. Cubic bezier, absolute coordinates
921 (PathCurvetoRel): New class. Cubic bezier, relative coordinates
922 (PathSmoothCurvetoAbs): New class. Cubic bezier, absolute
923 coordinates
924 (PathSmoothCurvetoRel): New class. Cubic bezier, relative
925 coordinates
926 (PathQuadraticCurvetoArgs): New class. Argument class for
927 PathQuadraticCurvetoAbs and PathQuadraticCurvetoRel.
928 (PathQuadraticCurvetoAbs): New class. Quadratic bezier, absolute
929 coordinates
930 (PathQuadraticCurvetoRel): New class. Quadratic bezier, relative
931 coordinates
932 (PathSmoothQuadraticCurvetoAbs): New class. Quadratic bezier,
933 absolute coordinates
934 (PathSmoothQuadraticCurvetoRel): New class. Quadratic bezier,
935 relative coordinates
936 (PathLinetoAbs): New class. Line to, absolute coordinates
937 (PathLinetoRel): New class. Line to, relative coordinates
938 (PathLinetoHorizontalAbs): New class. Horizontal lineto, absolute
939 coordinates
940 (PathLinetoHorizontalRel): New class. Horizontal lineto, relative
941 coordinates
942 (PathLinetoVerticalAbs): New class. Veritical lineto, absolute
943 coordinates.
944 (PathLinetoVerticalRel): New class. Vertical lineto, relative
945 coordinates.
946 (PathMovetoAbs): New class. Moveto, absolute coordinates
947 (PathMovetoRel): New class. Moveto, relative coordinates
948
9492000-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
950
951 * lib/Drawable.cpp (DrawableSkewX): New object to apply skew in X direction.
952 (DrawableSkewY): New object to apply skew in Y direction.
953
9542000-10-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
955
956 * lib/Image.cpp (edge): Change argument from 'unsigned int' to
957 'double' in order to match ImageMagick API.
958
9592000-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
960
961 * lib/Drawable.cpp (DrawableCompositeImage): Renamed from
962 DrawableImage.
963 (DrawableTextDecoration): Renamed form DrawableDecoration.
964 (all-classes): Complete re-write to write the drawing command to a
965 stream when draw() is invoked rather than at object construction
966 time. This may be somewhat slower for individual draw operations
967 but should be at least as fast for lists of drawing commands,
968 and is more flexible going into the future. Drawable classes now
969 inherit from DrawableBase but are passed into STL lists and Image
970 draw() methods via the surrogate class Drawable. The upshot of
971 all this is that the existing published API has not been altered
972 but things work much differently under the covers.
973
9742000-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
975
976 * lib/Drawable.cpp (DrawableStrokeColor): Renamed from DrawableStroke
977 (DrawableFillColor): Renamed from DrawableFill
978 (DrawableRotation): New class to influence object rotation.
979 (DrawableScaling): New class to influence object scaling.
980 (DrawableTranslation): New class to influence object translation.
981
9822000-10-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
983
984 * lib/Drawable.cpp (DrawableAffine): New class to influence object
985 scaling, rotation, and translation (as defined by SVG XML).
986 (DrawableAngle): New class to influence drawing angle.
987 (DrawableDecoration): New class to influence text decoration such
988 as underline.
989 (DrawableFill): New class to set object filling color.
990 (DrawableFillOpacity): New class to set opacity to use when
991 filling object.
992 (DrawableFont::): New class to set font.
993 (DrawableGravity): New class to set text placement gravity.
994 (DrawablePointSize): New class to set font point size.
995 (DrawableStroke): New class to set drawing stroke color.
996 (DrawableStrokeOpacity): New class to set drawing stroke opacity.
997 (DrawableStrokeWidth): New class to set drawing stroke width.
998
9992000-10-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1000
1001 * lib/Drawable.cpp (DrawableImage): Added width and height
1002 parameters to specify size to scale rendered image to. This is
1003 actually a bug-fix since it seems that the correct drawing command
1004 was no longer being generated.
1005
10062000-09-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1007
1008 * lib/Image.cpp (read): New overloaded method to read an image
1009 based on an array of raw pixels, of specified type and mapping, in
1010 memory.
1011 (write): New overloaded method to write image to an array of
1012 pixels, of specified type and mapping.
1013 (Image): New overloaded constructor to construct an image based on
1014 an array of raw pixels, of specified type and mapping, in memory.
1015
10162000-09-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1017
1018 * lib/Image.cpp (colorize): API change to match change in
1019 ImageMagick. Now accepts percentage of red, green, and blue to
1020 colorize with using specified pen color.
1021
10222000-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1023
1024 * lib/Magick++/Drawable.h: Reverted Coordinate implemenation back
1025 from and STL pair based implementation to a simple class. Maybe
1026 this will improve portability. It is more understandable anyway.
1027
10282000-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1029
1030 * lib/Options.cpp : Bugfix. Some DrawInfo attributes were not
1031 being updated. This lead to options like fontPointsize not
1032 changing the font.
1033
10342000-08-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1035
1036 * lib/Magick++/STL.h (blurImage, charcoalImage, embossImage,
1037 sharpenImage): Expand order_ argument to radius_ & sigma_
1038 arguments for more control (matches ImageMagick API change).
1039
1040 * lib/Image.cpp (blur, charcoal, emboss, sharpen): Expand order_
1041 argument to radius_ & sigma_ arguments for more control (matches
1042 ImageMagick API change).
1043
10442000-08-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1045
1046 * lib/Image.cpp (read): Check returned Image for embedded
1047 exception, as well as the existing parameter check. This fixes
1048 the bug that warnings are not reported.
1049
10502000-07-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1051
1052 * test/*.cpp demo/*.cpp: Added call to MagickIncarnate() to set
1053 ImageMagick install location for Windows. Hopefully this hack can
1054 be removed someday.
1055
10562000-07-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1057
1058 * lib/Image.cpp (colorFuzz): Changed type to 'double' from
1059 'unsigned int' to match change in ImageMagick.
1060
1061 * lib/Color.cpp (Color*): Added copy constructor from base class.
1062 (operator =): Added assignment operator from base class.
1063
10642000-06-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1065
1066 * lib/Magick++/Include.h : Changed enumeration FilterType to
1067 FilterTypes, and QuantumTypes to QuantumType in order to match
1068 last-minute API change in ImageMagick.
1069
10702000-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1071
1072 * lib/Magick++/Pixels.cpp (indexes): Bugfix, use GetCacheViewIndexes()
1073 rather than GetIndexes().
1074
10752000-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1076
1077 * lib/Magick++/Montage.h (gravity): Type of gravity_ argument, and
1078 return value changed from 'unsigned int' to GravityType.
1079
10802000-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1081
1082 * lib/Drawable.cpp (DrawableArc, DrawableBezier, DrawablePolyline,
1083 RoundRectangle): Added support for new drawing objects.
1084
10852000-04-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1086
1087 * lib/Drawable.cpp: Removed all public methods which accept
1088 Coordinate arguments except those that accept lists of
1089 Coordinates. Converted remaining drawable object methods into
1090 individual classes which inherit from Drawable (e.g. "circle"
1091 becomes "DrawableCircle"). The constructor for each class is
1092 compatible with the original method. This results in annoying
1093 changes to user code but provides more implementation flexibility.
1094
10952000-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1096
1097 * lib/Drawable.cpp
1098 (fillEllipse,fillRectangle,fillCircle,fillPolygon): Removed
1099 methods. Object filling is now based on whether fillColor or
1100 penTexture are valid or not. This reflects ImageMagick internal
1101 changes.
1102
1103 * lib/Image.cpp (fillColor): New method to specify fill color when
1104 drawing objects.
1105 (strokeColor): New method to specify outline color when drawing
1106 objects.
1107 (penColor): Setting penColor now sets fillColor and
1108 strokeColor. Getting penColor retrieves the value of
1109 strokeColor. This supports backwards compatability.
1110
11112000-03-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1112
1113 * lib/Image.cpp (lineWidth): Type changed from unsigned int to double.
1114
11152000-03-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1116
1117 * lib/Magick++/STL.h (Magick):
1118
11192000-03-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1120
1121 * lib/Magick++/STL.h (blurImage,charcoalImage,edgeImage,embossImage,
1122 reduceNoiseImage,sharpenImage): Modified to support order of the
1123 pixel neighborhood. Backward compatable function objects constructors
1124 are provided for embossImage, and reduceNoiseImage.
1125
1126 * lib/Image.cpp (blur,charcoal,edge,emboss,reduceNoise,sharpen):
1127 Now accept unsigned int argument which represents the order of the
1128 pixel neighborhood (e.g. 3). This is not a backwards compatable
1129 change, however, backward compatable methods are provided for emboss,
1130 and reduceNoise.
1131
11322000-03-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1133
1134 * lib/Magick++/Pixels.h (Pixels): Moved Image pixel methods to
1135 Pixels class.
1136
11372000-02-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1138
1139 * lib/Image.cpp (annotate): Re-wrote to improve performance.
1140 (draw): Re-wrote to improve performance.
1141
11422000-02-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1143
1144 * lib/Drawable.cpp (text): Bugfix: support spaces in annotation text.
1145
11462000-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1147
1148 * lib/Magick++/STL.h (gaussianBlurImage): New function object to
1149 Gaussian blur image.
1150
1151 * lib/Image.cpp (gaussianBlur): New method to Gaussian blur image.
1152
11532000-02-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1154
1155 * lib/Image.cpp : Call-back based LastError class is eliminated in
1156 favor of ImageMagick 5.2's re-entrant ExceptionInfo reporting.
1157 This should make Magick++ thread safe under Win32.
1158
11592000-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1160
1161 * lib/Image.cpp (floodFillTexture): Fixed bug due to pixel pointer
1162 becoming invalid in ImageMagick function.
1163
11642000-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1165
1166 * lib/Image.cpp : Added locking to reference counting to ensure
1167 thread (pthread) safety.
1168
1169 * lib/Blob.cpp : Added locking to reference counting to ensure
1170 thread (pthread) safety.
1171
1172 * lib/LastError.cpp: Added support for thread specific data
1173 (pthreads) so that error reporting is thread safe.
1174
1175 * lib/Magick++/Thread.h: Added thread wrapper class to provide
1176 thread-safe locking (pthreads) to Magick++.
1177
11782000-01-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1179
1180 * lib/Image.cpp: Added methods getPixels, setPixels, syncPixels,
1181 readPixels, and writePixels, in order to provide low-level access
1182 to Image pixels. This approach (direct wrapper around ImageMagick
1183 functions) does not mean that the planned object-oriented wrapper
1184 has been forgotten, only that this wrapper is not ready yet, and
1185 users need to manipulate pixels *now*.
1186
11872000-01-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1188
1189 * lib/LastError.cpp: Complete re-implementation of LastError so
1190 that it hides its implementation. Also assures that all memory is
1191 explicitly deallocated at program exit to avoid the appearance of
1192 a leak.
1193
11942000-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1195
1196 * lib/Image.cpp (size): Bug-fix. Set image columns and rows as
1197 well as image options columns and rows.
1198
1199 * lib/Image.cpp :Depth parameters are now all unsigned in for consistency.
1200
1201 * lib/Image.cpp (write): Parameters for writing Blobs re-arranged
1202 again to hopefully be more sensible.
1203
1204 * lib/Magick++/STL.h: Bug-fix. Re-number scenes from zero when linking
1205 image range in container into a list. This provides expected results.
1206
12071999-12-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1208
1209 * lib/Image.cpp
1210 (write): Additional overloaded methods for BLOBs.
1211 (read): Additional overloaded methods for BLOBs. Re-ordered
1212 parameters for one existing method.
1213 (Image): Additional overloaded methods for BLOBs. Re-ordered
1214 parameters for one existing method.
1215
12161999-12-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1217
1218 * lib/Image.cpp (floodFillTexture): Changed coordinates to unsigned.
1219
12201999-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1221
1222 * lib/Image.cpp (medianFilter): New method.
1223
12241999-12-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1225
1226 * lib/Image.cpp (density): Bug fix. Was not setting image x & y density.
1227
12281999-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1229
1230 * lib/Image.cpp (page): psPageSize() is renamed to page() and now
1231 properly returns the attribute from the image.
1232
12331999-11-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1234
1235 * lib/Image.cpp: Rename transformColorSpace() to colorSpace().
1236 Added colorSpace() accessor method.
1237
12381999-11-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1239
1240 * lib/Color.cpp: Re-implemented PixelPacket pointer so that it is
1241 never NULL and added a 'valid' field for tracking object validity.
1242
12431999-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1244
1245 * lib/Image.cpp (quantizeError): Eliminated method.
1246
12471999-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1248
1249 * lib/Image.cpp (annotate & draw): Changed implementation to
1250 reflect change to the way AnnotateInfo is managed by ImageMagick.
1251
12521999-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1253
1254 * lib/Image.cpp (cacheThreshold): New method to set the pixel
1255 cache threshold.
1256
1257 * lib/Magick++/Include.h (Magick): Added new enumerations from
1258 classify.h.
1259
12601999-10-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1261
1262 * lib/Magick++/Options.h (fontPointsize): Argument is now a double
1263 to match change in ImageMagick.
1264
1265 * lib/Image.cpp (fontPointsize): Argument is now a double to match
1266 change in ImageMagick.
1267
12681999-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1269
1270 * lib/Blob.cpp (BlobRef): Bugfix -- start blob reference count at
1271 one rather than zero.
1272
12731999-10-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1274
1275 * lib/Image.cpp (Image): Fixed Image constructors from Blob. The
1276 image reference was not being instantiated as it should have been,
1277 causing a crash.
1278
12791999-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1280
1281 * lib/Blob.cpp: All blob length parameters are now of type size_t.
1282
1283 * lib/Image.cpp (write): Length estimate is now of type size_t.
1284
12851999-09-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1286
1287 * lib/Image.cpp (rotate): No longer accepts a crop option since
1288 ImageMagick no longer supports this.
1289 (shear): No longer accepts a crop option since ImageMagick no
1290 longer supports this.
1291
12921999-09-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1293
1294 * lib/Image.cpp:
1295 (rotate): No longer accepts sharpen argument.
1296 User must sharpen seperately if desired. This change is due to a
1297 similar change in ImageMagick 5.0.
1298 (condense): Removed method.
1299 (uncondense): Removed method.
1300 (condensed): Removed method.
1301 (pixelColor): Adapted to 5.0.
1302
1303 * lib/Magick++/Color.h : Rewrote to efficiently use ImageMagick
1304 5.0's PixelPacket color representation.
1305
1306 * lib/Color.cpp : Rewrote to efficiently use ImageMagick 5.0's
1307 PixelPacket color representation.
1308
13091999-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1310
1311 * lib/Image.cpp (condensed): Bug fix. The condensed() method was returning the opposite bool value than it should. Oops!
1312
13131999-09-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1314
1315 * lib/Magick++/Include.h (MagickCore): Eliminated requirement for
1316 including <magick/define.h>.
1317
13181999-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1319
1320 * lib/Image.cpp: Added accessor methods for other key ImageMagick
1321 structs.
1322
1323 * lib/Options.cpp (penTexture): Fixed bug with removing texture
1324 caused by change in Image constructor.
1325
1326 * lib/Image.cpp: Changed strategy such that an Image containing a
1327 null MagickCore::Image pointer is never constructed except for
1328 under error conditions. Removed existing checks for null image
1329 pointer on attribute methods.
1330
1331 Use image() and constImage() accessor methods as part of Image
1332 implementation in order to clean-up code and ensure
1333 const-correctness.
1334
13351999-08-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1336
1337 * lib/Magick++/STL.h (Magick): Added STL function readImages().
1338 Not tested yet.
1339 (Magick): Added STL function writeImages(). Not tested yet.
1340
1341 * lib/Image.cpp: Removed support for 'text' attribute as this is
1342 no longer present in ImageMagick as of 4.2.8.
1343
13441999-07-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1345
1346 * lib/Image.cpp (condense): Skip condensing image if already
1347 condensed.
1348 (uncondense): Skip uncondensing image if not condensed.
1349 (condensed): New method to test if image is condensed.
1350 (classType): New method which supports conversion of the image
1351 storage class. May result in loss of color information
1352 (quantization is used) if a DirectClass image is converted to
1353 PseudoClass.
1354
13551999-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1356
1357 * lib/Magick++/Color.h (Magick::Color): Color parameters are now
1358 stored in a MagickCore::RunlengthPacket structure which is
1359 referenced via a pointer. This structure is either allocated by a
1360 Magick::Color constructor or passed as an argument to a
1361 Magick::Color constructor so that it may refer to a
1362 MagickCore::Image pixel. The owner of the structure is managed so
1363 that the structure is only deleted if it was allocated by
1364 Magick::Color.
1365
13661999-07-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1367
1368 * overall : Removed 'Magick' prefix from all source file
1369 names. Moved class headers to Magick++ subdirectory. This should
1370 not break any code using the documented interface (via
1371 Magick++.h).
1372
13731999-07-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1374
1375 * lib/MagickImage.cpp (composite): Support composition placement
1376 by gravity like PerlMagick does.
1377
13781999-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1379
1380 * lib/MagickImage.cpp (Image): Added constructors to construct an
1381 Image from a BLOB.
1382
13831999-07-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1384
1385 * tests/manipulate.cpp (main): Wrote a basic sanity test for
1386 reading and writing BLOBS.
1387
13881999-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1389
1390 * lib/MagickImage.cpp (read): Added support for reading an encoded
1391 image stored in a BLOB. Uses new ImageMagick APIs introduced on
1392 July 21, 1999.
1393 (write): Added support for writing an encoded image to a BLOB.
1394
13951999-06-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1396
1397 * lib/MagickInclude.h : Use new <magick/api.h> interface to
1398 ImageMagick to avoid namespace-induced problems.
1399
1400 * configure.in : CPPFLAGS and LDFLAGS specified via the
1401 environment take precidence over flags from Magick-config.
1402
14031999-05-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1404
1405 * lib/MagickSTL.h (mapImages): New algorithm to map the sequence
1406 of images to the color map of a provided image.
1407 (quantizeImages): New algorithm to quantize a sequence of images
1408 to a common color map.
1409
14101999-05-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1411
1412 * lib/MagickBlob.cpp (updateNoCopy): New method to allow derived
1413 classes to insert data into the base class without making a copy
1414 of the data. This represents a transfer of ownership of the data
1415 from the derived class to the base class.
1416
14171999-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1418
1419 * lib/MagickColor.cpp (operator =): Adapted to new ImageMagick
1420 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1421
1422 * lib/MagickGeometry.cpp (operator =): Adapted to new ImageMagick
1423 4.2.6 as of 5/23/99 which removes X11 compatability functions.
1424
14251999-05-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1426
1427 * lib/MagickBlob.cpp (Blob): Support default constructor for Blob.
1428
14291999-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1430
1431 * lib/MagickSTL.h (transformColorSpaceImage): New unary function object
1432 to invoke transformColorSpace on STL container object.
1433
1434 * lib/MagickImage.cpp (transformColorSpace): New method to
1435 transform the image data to a new colorspace.
1436
14371999-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1438
1439 * lib/MagickImage.cpp (ping): Re-implemented to match (requested)
1440 API change in ImageMagick 4.2.5. Method signature has changed to
1441 be like 'read'.
1442 (annotate): Added two new overloaded methods for text annotation
1443 in order to support the new rotated text capability in ImageMagick
1444 4.2.5. To accomplish this, the default for gravity had to be
1445 removed from several methods. This may impact existing code.
1446 Still not sure if this is the best set of method signatures.
1447
14481999-05-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1449
1450 * lib/MagickImage.cpp (ping): New method to obtain image size in
1451 bytes and geometry without the overhead of reading the complete
1452 image.
1453 (uncondense): New method to uncompress run-length encoded pixels
1454 into a simple array to make them easy to operate on.
1455
14561999-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1457
1458 * lib/MagickImage.cpp (comment): Passing an empty string as the
1459 comment results in no comment at all rather than a comment with no
1460 data.
1461
14621999-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1463
1464 * lib/MagickImage.cpp (iccColorProfile): Implemented method to set
1465 ICC color profile from opaque object in memory (must be formatted
1466 outside of Magick++).
1467 (iptcProfile): Implemented method to set IPTC profile from opaque
1468 object in memory (must be formatted outside of Magick++).
1469
1470 * lib/MagickBlob.cpp: New class to support managing user-supplied
1471 opaque Binary Large OBjects (BLOBS) in the API. Reference counted
1472 to improve semantics and to possibly reduce memory consumption.
1473
14741999-05-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1475
1476 * lib/Makefile.am (libMagick): Updated to use libtool 1.3 so that
1477 shared library can be built.
1478
14791999-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1480
1481 * lib/MagickImage.cpp (montageGeometry): Return Magick::Geometry
1482 rather than std::string.
1483
14841999-04-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1485
1486 * lib/MagickColor.cpp (alpha): Added support for setting alpha via
1487 scaled-double to the Color class. The new method name is 'alpha'.
1488
14891999-04-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1490
1491 * lib/MagickColor.cpp: Added support for setting an alpha value
1492 (unscaled Quantum only) for use on DirectColor images that have
1493 matte enabled. This requires ImageMagick 4.2.2 dated April 13,
1494 1999 or later to compile since Cristy added a special flag to
1495 allow testing to see if the user has specified an opacity value:
1496 "I added XColorFlags to magick/classify.h. If DoMatte is set in
1497 color->flags then the opacity value is valid in color->pixel."
1498
14991999-04-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1500
1501 * demo/flip.cpp (main): New file. Demonstrates use of flipImage
1502 function object as well as morphImages algorithm.
1503
15041999-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
1505
1506 * tests/color.cpp : New file to support testing the Magick::Color
1507 classes.
1508
1509 * lib/MagickOptions.cpp: The ImageInfo filter member is now
1510 ignored by ImageMagick (as of ImageMagick 4.2.2 April 10, 1998) so
1511 support for setting it is removed. The Image filter member is
1512 still updated. According to Cristy, this ImageMagick version
1513 removes automatic sharpening of resized images. The blur member
1514 is added to the Image structure. A blur value < 1 causes the image
1515 to be sharpened when resizing while a value > 1 leaves the image
1516 blurry. Magick++ does not yet support the blur member.
1517
1518