github.com/kaydxh/golang@v0.0.131/pkg/gocv/cgo/third_path/graphics-magick/share/doc/GraphicsMagick/ChangeLog.2008 (about) 1 2008-12-28 Fojtik Jaroslav <JaFojtik@seznam.cz> 2 3 * coders/fits.c: Ability to read extension blocks. 4 5 * coders/fits.c: Fixed MaxTextExtent limitation of blocks. 6 7 2008-12-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 8 9 * www/OpenMP.rst: Add results for Window Vista 64-bit / AMD Phenom 10 X4 9550. 11 12 * VisualMagick/installer/inc/body.isx: Revert yesterday's change 13 regarding the placement of config files. Place the config files 14 in a `config` subdirectory just as before. 15 16 2008-12-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 17 18 * VisualMagick/installer/inc/body.isx: They say that when in Rome 19 you should do as the Roman's do. Based on this philosophy, all of 20 the coder and filter DLLs are now installed to the same directory 21 as the executables and DLLs which depend on them. This eases 22 operation under Windows Vista. 23 24 2008-12-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 25 26 * magick/blob.c: First pass at supporting large file access under 27 Windows. 28 29 2008-12-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 30 31 * magick/resource.c (InitializeMagickResources): Improve resource 32 estimation for Microsoft Windows systems with large memory. 33 34 * magick/segment.c: Added some code to dump histograms with 35 `-verbose -verbose`. 36 37 * coders/tiff.c: Support reading/writing 16 and 24 bit float TIFF 38 files. 39 40 * magick/constitute.c (ExportViewPixelArea): Support exporting 16 41 and 24 bit short floats. Relies on code developed for 42 GraphicsMagick by Richard Nolde. 43 (ImportViewPixelArea): Support importing 16 and 24 bit short 44 floats. Relies on code developed for GraphicsMagick by Richard 45 Nolde. 46 47 2008-12-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 48 49 * magick/operator.h (enum QuantumOperator): Added LogQuantumOp, 50 MaxQuantumOp, MinQuantumOp, and PowQuantumOp enumerations as well 51 as "Log", "Max", "Min", and "Pow" options to -operator. 52 53 2008-12-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 54 55 * magick/command.c (MogrifyImage): The -write option was not 56 implemented in a useful fashion and the +write option never worked 57 at all. Re-implement -write and eliminate +write from the 58 documentation since +write is not needed. 59 60 2008-12-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 61 62 * coders/tiff.c (ReadTIFFImage, WriteTIFFImage) Support reading 63 and writing 64-bit integer TIFF. 64 65 * magick/constitute.c (ImportViewPixelArea): Add support for 66 importing 64-bit integer values. 67 (ImportViewPixelArea): Add support for exporting 64-bit integer 68 values. 69 70 2008-12-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 71 72 * coders/tiff.c (ReadTIFFImage): Fix bug with reading one bit per 73 sample RGB images. 74 75 2008-12-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 76 77 * magick/pixel_cache.c (OpenCache): Fix a code ordering problem 78 which results in `identify` throwing an assertion for PseudoClass 79 image files. This bug was added in the 1.3.2 release. 80 81 * coders/tiff.c (ReadTIFFImage): Fix bug with `ping` mode. 82 83 2008-12-07 Fojtik Jaroslav <JaFojtik@seznam.cz> 84 85 * coders/fits.c: Proper signed to unsigned conversion for 64 bit LSB images. 86 87 2008-12-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 88 89 * magick/Makefile.am: When X11 is disabled, don't compile the 90 X11-specific source modules. Don't ever install any X11-related 91 header files. 92 93 2008-12-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 94 95 * magick/segment.c (SegmentImage): Use `double` rather than 64-bit 96 integer to accumulate totalized values. Make the cluster summary 97 report more concise. 98 99 2008-12-06 Fojtik Jaroslav <JaFojtik@seznam.cz> 100 101 * coders/fits.c: Fix for 64 bit images. 102 103 2008-12-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 104 105 * magick/segment.c (SegmentImage): Cluster threshold is expressed 106 as a percentage of total cluster pixels. Optimize for larger 107 images. 108 109 2008-12-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 110 111 * magick/segment.c (SegmentImage): Accelerate using OpenMP. 112 113 2008-11-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 114 115 * magick/utility.c (ExpandFilenames): Remove some arbitrary 116 argument length limits. Pass -convolve argument without any 117 additional checking. Verify that strings are not truncated during 118 copy. 119 (ListFiles): Be more memory efficient. 120 121 * magick/fx.c (ConvolveImage): Fix formatting problem when logging 122 the convolution kernel used. 123 124 * magick/utility.c (TranslateTextEx): Support formatting huge 125 comment text. 126 127 2008-11-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 128 129 * magick/fx.c (ConvolveImage): Don`t process opacity channel 130 unless image has one. 131 132 * magick/effect.c (MotionBlurImage): Use 133 AcquireOnePixelByReference() rather than AcquireImagePixels() to 134 retrieve one pixel. This is much more efficient. 135 (AdaptiveThresholdImage): Don`t process opacity channel unless 136 image has one. 137 (BlurImage): Don`t process opacity channel unless image has one. 138 139 2008-11-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 140 141 * magick/profile.c (ProfileImage): +profile now supports a simple 142 exclusion syntax. For example, to strip all of the profiles 143 except for the ICM profile use +profile '!icm,*'. The new syntax 144 also allows multiple profile names to be listed at once. The 145 primary requirement is that all excluded profiles must be listed 146 prior to those to be stripped. 147 148 2008-11-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 149 150 * magick/transform.c (RollImage): Remove image storage class 151 alteration. 152 (CompositeImageRegion): Ensure that the canvas image storage class 153 is correct. 154 155 2008-11-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 156 157 * config/delegates.mgk.in: Since we removed support for `spawn` a 158 long time ago, and no longer execute using the Unix shell by 159 default, we need to add an ampersand to the end of the two entries 160 previously using `spawn` so that the display program does not hang 161 when it invokes the external program. 162 163 * utilities/Makefile.am (UTILITIES_TESTS): Add preview-based 164 tests. 165 166 * coders/preview.c (WritePreviewImage): Solarize requires a 167 threshold argument. 168 169 * coders/vid.c (WriteVIDImage): Eliminate memory leak. 170 171 * magick/montage.c (MontageImages): Fix continued use of freed 172 memory. 173 174 2008-11-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 175 176 * magick/omp_data_view.c (AccessThreadViewDataById): New function 177 to allow retrieving data via the index it was registered with. 178 179 * magick/enhance.c (BuildChannelHistograms): EnhanceImage() and 180 NormalizeImage() now share one common function for generating the 181 histogram. 182 183 * magick/enhance.c (ModulateImage): Improve performance a bit. 184 (ContrastImage): Improve performance a bit. 185 (GammaImage): Improve performance a bit. 186 187 2008-11-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 188 189 * www/authors.rst: List Mark Mitchell as an author. 190 191 * utilities/tests/msl_composite.sh: Fix `rm -f` without a valid 192 argument which annoyed NetBSD. 193 194 * coders/fits.c: Impose a limit on the length of the row PDU. 195 Make sure that GraphicsMagick version information does not 196 overflow the length allowed by a row PDU. 197 198 2008-11-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 199 200 * coders/jpeg.c (WriteJPEGImage): Use DCT algorithm default from 201 the library rather than the header file. 202 203 * magick: Adjust OpenMP scheduling options based on observed 204 behavior. 205 206 2008-11-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 207 208 * magick/shear.c (IntegralRotateImage): Added OpenMP acceleration 209 for rotate by 90 and 270 degrees. 210 211 * configure.ac: New --disable-openmp-slow configure for disabling 212 use of OpenMP for algorithms which may run slower on operating 213 systems with crummy thread libraries. This still allows gaining 214 the benefits from OpenMP for CPU hogs. Verified to help with 215 FreeBSD 7.0 and Apple OS-X Leopard. 216 217 * magick/semaphore.c: Trimmed out the debug code in order to 218 obtain a bit more performance. 219 220 2008-11-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 221 222 * coders/jpeg.c: Allow the user to specify the DCT method 223 (jpeg:dct-method), or if huffman encoding should be enabled 224 (jpeg:optimize-coding=true). Default the DCT method to the 225 libjpeg default rather than forcing it to JDCT_FLOAT since float 226 is slower on some systems. 227 228 2008-11-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 229 230 * coders/jp2.c (BlobClose): Leak a little bit less memory when 231 reading a JP2 file. 232 233 2008-11-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 234 235 * wand/wandtest.c: Eliminate memory leak. 236 237 * wand/drawing_wand.c (DestroyDrawingWand): Eliminate memory 238 leaks. 239 240 * coders/xwd.c (WriteXWDImage): Force colormapped images with more 241 than 256 colors to DirectClass. 242 243 * magick/enhance.c (ModulateImage): Improve progress message. 244 245 * coders/msl.c: Eliminate memory leaks. 246 247 * GraphicsMagick.spec.in: Apply RPM spec file fixes from Giacomo 248 Tenaglia for Red Hat Linux 4. 249 250 2008-11-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 251 252 * coders/msl.c: Fix bug with attributes becoming appended to 253 themselves. Resolves SF issue 2255754. Reflowed code. 254 255 2008-11-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 256 257 * version.sh: GraphicsMagick 1.3 released. 258 Next release on head will be 1.4. 259 260 * www/OpenMP.rst: Updated with latest measurement data. 261 262 * www/benchmarks.rst: Updated with latest benchmark data. 263 264 * coders/url.c (RegisterURLImage): Register HTTP and FTP URL 265 support in the "unstable" category since these are capable of 266 accessing the network and therefore represent a potential security 267 issue. Register the FILE URL support in the "stable" category 268 since it is capable of incorporating local disk files, which may 269 still represent a security security issue for server applications. 270 Note that disabling these functions might cause some existing MSL, 271 MVG and SVG scripts to stop working if they use external URLs. 272 273 2008-11-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 274 275 * coders/pnm.c (ReadPNMImage): Sequential multi-thread the PNM raw 276 format readers. Can improve read performance quite substantially 277 for large PBM and PGM files, and less so for PPM. There is most 278 benefit for systems with more I/O than one CPU core will support. 279 Systems with slow I/O and a relatively fast CPU may see somewhat 280 diminished read performance with more CPU consumption. As such, 281 this is effectively a verification that multi-threading the reader 282 is possible, and may be of benefit to power-users. 283 284 * magick/omp_data_view.c (AllocateThreadViewDataArray): New 285 function to allocate a thread view data array. Updated modules 286 using similar code to use this function in order eliminate 287 useless redundancy. 288 289 2008-11-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 290 291 * magick/pixel_cache.c: Incorporate OMP thread views into the 292 pixel cache so usage is less invasive. Update OMP-enhanced source 293 modules to suit. 294 (GetImagePixelsEx): New function similar to GetImagePixels() 295 except that it reports exceptions to a user-provided structure. 296 (SetImagePixelsEx): New function similar to SetImagePixels() 297 except that it reports exceptions to a user-provided structure. 298 (SyncImagePixelsEx): New function similar to SyncImagePixels() 299 except that it reports exceptions to a user-provided structure. 300 (AccessImmutableIndexes): New function to access read-only 301 colormap indexes. 302 (AccessMutableIndexes): New function to access writeable colormap 303 indexes. 304 (AccessMutablePixels): New function to access writeable pixels. 305 (AccessDefaultCacheView): New function to access the default cache 306 view. 307 308 2008-11-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 309 310 * magick/command.c (BenchmarkImageCommand): With no other 311 arguments, the benchmark command now defaults to one iteration. 312 313 * magick/effect.c (SpreadImage): Offsets array size is a prime 314 number to help avoid beating. 315 (SpreadImage): Ensure that spread loops are always terminal. 316 317 * magick/utility.c (MagickRandReentrant): Fix bug where rand() was 318 being continually re-seeded if rand_r() was not available. 319 320 2008-11-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 321 322 * utilities/tests/msl_composite.sh: Replace SVG image generation 323 with simpler approach which properly centers the text. Use our 324 own font so that tests will pass if the user does not have fonts 325 installed. 326 327 * magick/utility.c (GetMagickDimension): Extend to support parsing 328 optional x and y offset values and use to fix parsing for 329 -oil-paint and -unsharp when sscanf() is C'99 compliant. 330 331 2008-11-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 332 333 * magick/pixel_cache.h (AcquireOneCacheViewPixel): Pass pixel to 334 update by reference. 335 (AcquireOnePixelByReference): New private inline method which 336 passes pixel to update by reference. 337 338 * magick/omp_thread_view.h (AcquireOneThreadViewPixel): Pass pixel 339 to update by reference. 340 341 * magick/alpha_composite.h (BlendCompositePixel): Replace 342 BlendComposite with BlendCompositePixel, which passes the 343 composite pixel by reference. 344 (AlphaCompositePixel): Replace AlphaComposite with 345 AlphaCompositePixel, which passes the composite pixel by 346 reference. 347 (AtopCompositePixel): Replace AtopComposite with 348 AtopCompositePixel, which passes the composite pixel by reference. 349 350 * configure.ac: With excessive maintenance releases, the library 351 age portion of MAGICK_LIB_VERSION was overflowing its allotted 352 space. This resulted in 1.1.X releases reporting the wrong 353 MagickLibVersion as of 1.1.10. Fix this by supporting up to 99 354 values for each field. 355 356 2008-11-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 357 358 * configure.ac: Fix passing the --with-windows-font-dir option via 359 DISTCHECK_CONFIG_FLAGS. 360 361 * utilities/tests/msl_composite.sh: Integrated MSL composition 362 test script contributed by Max Hohenegger, Max at hohenegger.eu. 363 364 * magick/command.c (ConjureImageCommand): Return status was 365 inverted so one was returned for command success rather than zero. 366 367 2008-11-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 368 369 * png: Updated libpng to 1.2.33 release. 370 371 * magick/color.c (FuzzyColorMatch): If fuzz is zero then 372 completely use the result of ColorMatch() rather than entering 373 unnecessary expensive code. 374 375 2008-10-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 376 377 * magick/studio.h: Make sure we don't conflict with OpenMP 378 implementation if it is active but we are not using it. 379 380 2008-10-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 381 382 * magick/studio.h (HAVE_OPENMP): Add logic to make sure that 383 OpenMP is only engaged for OpenMP 2.0 or later. 384 385 * magick/command.c (VersionCommand): Report OpenMP version. 386 387 * Makefile.am: The Magick++ build was supposed to be optional. Now 388 it is. 389 390 * Makefile.am: Eliminated .tar.bz2 and .zip packages from the 391 distribution. The .tar.bz2 package was hardly smaller than the 392 .tar.gz package so it wasted 5.9MB with little benefit. The 393 compression ratio on the .zip archives is absolutely terrible so 394 eliminating zip eliminates huge 9.6MB and 25MB files from the 395 distribution equation. Windows users can easily learn how to use 396 the vastly more efficient 7-Zip format. 397 398 2008-10-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 399 400 * configure.ac: Rationalize OpenMP tests to make sure that OpenMP 401 can not be enabled without thread support. 402 403 2008-10-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 404 405 * magick/composite.c (CompositeImageRegion): Add some minimal 406 region limit checking. Not completed yet. 407 408 * magick/transform.c (RollImage): Accellerate using OpenMP. 409 410 2008-10-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 411 412 * magick/studio.h (omp_get_thread_num): Remove spurious trailing 413 `;`. 414 415 * magick/render.c (DrawPrimitive): Make method private since 416 nothing else is using it. 417 418 * magick/omp_thread_view.h (AccessThreadView): Inline function for 419 a bit more performance. 420 (AcquireOneThreadViewPixel) Inline function for a bit more 421 performance. 422 423 2008-10-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 424 425 * pragma omp parallel for: Use consistent static scheduling 426 throughout and ensure that 64 threads can be usefully engaged on a 427 1024 row image. 428 429 * magick/pixel_iterator.c (SetRegionThreads): Implement logic so 430 that pixel iterators execute single-threaded when invoked on tiny 431 regions. 432 433 * magick/pixel_cache.c (SetNexus): Make staging buffer memset() 434 conditional in order to dramatically diminish impact to small 435 accesses. This memset() only exists to make valgrind happy. 436 437 2008-10-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 438 439 * coders/tiff.c (ReadTIFFImage): Fix progress monitor for the case 440 of reading planar stripped images. 441 442 2008-10-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 443 444 * magick/effect.c (DespeckleImage): Accelerate using OpenMP. 445 446 * magick/paint.c (OpaqueImage): Update to use pixel iterators. 447 (TransparentImage): Update to use pixel iterators. 448 449 * magick/decorate.c (FrameImage): Accelerate using OpenMP. 450 (RaiseImage): Accelerate using OpenMP. 451 452 2008-10-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 453 454 * magick/composite.c (CompositeImageRegion): Start of new function 455 to act as a lighter-weight yet more flexible image composition 456 interface. 457 458 * magick/transform.c (ChopImage): Accelerate using OpenMP. 459 (CropImage): Accelerate using OpenMP. 460 (FlipImage): Accelerate using OpenMP. 461 (FlopImage): Accelerate using OpenMP. 462 463 * magick/effect.c (ThresholdImage): Accelerate using OpenMP. 464 465 2008-10-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 466 467 * magick/pixel_cache.c (AcquireOneCacheViewPixel): Optimize 468 implementation. 469 470 * magick/effect.c (MedianFilterImage): Accelerate using OpenMP. 471 (ReduceNoiseImage): Accelerate using OpenMP. 472 473 2008-10-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 474 475 * magick/fx.c (WaveImage): Accelerate using OpenMP. 476 (SwirlImage): Accelerate using OpenMP. 477 (ImplodeImage): Accelerate using OpenMP. 478 479 2008-10-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 480 481 * magick/pixel_cache.c (GetCacheViewRegion): New function to 482 return the region bounded by a pixel cache view. 483 484 * magick/constitute.c (ExportViewPixelArea): New function to 485 support exporting the pixels from a pixel cache view. 486 (ImportViewPixelArea): New function to support importing pixels 487 to a pixel cache view. 488 489 * magick/pixel_cache.c (ReadStream): Eliminated function. 490 (WriteStream): Eliminated function. 491 (ClonePixelCacheMethods): Eliminated function. 492 493 * magick/image.h: Eliminated StreamHandler call-back type. 494 Eliminated ImageInfo stream member. 495 496 * magick/pixel_cache.c (GetCacheViewArea): New function to return 497 the area of a cache view. 498 (AccessCacheViewPixels): New function to access already selected 499 cache view pixels. 500 501 2008-10-19 Fojtik Jaroslav <JaFojtik@seznam.cz> 502 503 * coders/fits.c: Remove unused exponential data. 504 505 2008-10-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 506 507 * magick/omp_thread_view.c: Move OMP Thread View functions out of 508 pixel cache module and put them in this new module. 509 510 * coders/xtrn.c (ReadXTRNImage): XTRNSTREAM mode was never 511 implemented so remove unfinished stub code. 512 513 2008-10-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 514 515 * magick/image.c (SetImageDepth): Needed to assign image depth 516 attribute to user-specified depth rather than only altering the 517 pixels. 518 (SetImageOpacity): Reimplement using pixel iterators. 519 (AverageImages): Accelerate using OpenMP. 520 (GetImageBoundingBox): Accelerate using OpenMP. 521 522 2008-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 523 524 * magick/constitute.c (ConstituteTextureImage): Accelerate using 525 OpenMP. 526 527 * magick/image.c (TextureImage): Accelerate using OpenMP. 528 529 * magick/render.c (DrawAffineImage): Accelerate using OpenMP. 530 531 2008-10-13 Fojtik Jaroslav <JaFojtik@seznam.cz> 532 533 * coders/fits.c Fixed palette problem for >8 bit images. 534 535 2008-10-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 536 537 * magick/command.c (MogrifyImage): Using +page now resets image 538 page offsets as documented for convert and mogrify. 539 540 2008-10-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 541 542 * magick/image.c (GradientImage): Re-do OpenMP accelleration based 543 on new pixel cache interface for better performance. 544 545 * coders/dpx.c (ReadDPXImage): Progress monitor needs to tick when 546 row count is updated. 547 548 * coders/fits.c (ReadFITSImage): Update to use 549 MagickFindRawImageMinMax(). 550 (WriteFITSImage): Expand buffer size to MaxTextExtent. Include 551 GraphicsMagick version in FITS header. 552 553 * coders/mat.c (ReadMATImage): Update to use 554 MagickFindRawImageMinMax(). 555 556 * magick/constitute.c (MagickFindRawImageMinMax): New internal 557 function to assist with finding the minimum and maximum data of 558 raw image files. 559 560 2008-10-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 561 562 * magick/pixel_cache.c (AcquireThreadViewPixels): Convert thread 563 set view convenience methods into library methods because the 564 inline methods were causing the Sun Studio compiler to produce 565 thread unsafe code. Due to likely beneficial inlining in the 566 library, this is not expected to cause any performance impact. 567 568 2008-10-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 569 570 * PerlMagick/t/filter.t: Add a test for UnsharpMask. 571 572 * magick/effect.c (UnsharpMaskImage): Use Blur rather than 573 GaussianBlur to create blur image since it is faster. 574 575 * magick/pixel_cache.c (AllocateThreadViewDataSet): Add a 576 destructor function in case data should not be destroyed, or needs 577 something other than MagickFree(). 578 (AllocateThreadViewDataSet): Use user-provided destructor to free 579 user data. 580 581 * scripts/format_c_api_doc.py: Improvements from Mark Mitchell to 582 perform keyword/target substitions and wrap function prototypes. 583 584 * coders/dpx.c (ReadDPXImage): Accellerate reader using OpenMP. 585 586 2008-10-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 587 588 * www/api/types.rst: Convert types.html to reStructured text 589 format. 590 591 2008-10-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 592 593 * magick/monitor.c (MagickMonitorFormatted): New method to support 594 issuing a formatted progress monitor message. Use it throughout 595 so that file name is included in progress indication. 596 597 2008-10-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 598 599 * configure.ac: Bootstrap with autoconf 2.63. Require autoconf 600 2.62 to bootstrap. 601 602 2008-10-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 603 604 * www: Adopted improved web page design by Mark Mitchell. 605 606 2008-10-04 Fojtik Jaroslav <JaFojtik@seznam.cz> 607 608 * coders/fits.c coders/mat.c Used a same piece of code to calculate 609 min and max data value. 610 611 2008-09-30 Fojtik Jaroslav <JaFojtik@seznam.cz> 612 613 * coders/fits.c Fixed 16 bit fits writer that wrote wrongly 614 shaped unsigned ints. 615 616 2008-09-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 617 618 * doc/conjure.imdoc: Applied patches from Max at hohenegger.eu to 619 mention previously undocumented elements and to provide a 620 composition example. 621 622 2008-09-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 623 624 * magick/shear.c (IntegralRotateImage): Accelerate rotation by 0 625 and 180 degrees using OpenMP. 626 (XShearImage): Accellerate using OpenMP (accellerates -rotate and 627 -shear). 628 (YShearImage): Accellerate using OpenMP (accellerates -rotate and 629 -shear). 630 631 2008-09-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 632 633 * magick/effect.c (MotionBlurImage): Enable OpenMP now that pixel 634 cache is re-entrant. 635 636 * magick/pixel_iterator.c: Updated to use thread view convenience 637 inline methods as proof of principle. 638 639 * magick/pixel_cache.h: Added convenience inline methods to make 640 use of thread views a bit more pleasant. 641 642 2008-09-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 643 644 * magick/effect.c (ShadeImage): Fix valgrind gripe. 645 (MedianFilterImage): Fix valgrind gripe. 646 647 2008-09-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 648 649 * magick/pixel_cache.c: Pixel cache is believed to be thread safe 650 now. 651 652 * magick/deprecate.c (AcquireCacheView): Deprecate this function. 653 (GetCacheView): Deprecate this function. 654 (SetCacheView): Deprecate this function. 655 (SyncCacheView): Deprecate this function. 656 657 * magick/pixel_cache.c (AcquireCacheViewPixels): New function to 658 replace AcquireCacheView(). 659 (GetCacheViewPixels): New function to replace GetCacheView(). 660 (SetCacheViewPixels): New function to replace SetCacheView(). 661 (SyncCacheViewPixels): New function to replace SyncCacheView(). 662 663 * coders/msl.c: Applied patches from Max at hohenegger.eu which 664 fix a MSL parsing error related to gamma, and erroneous text 665 comments which claim that elements can't have attributes. 666 667 2008-09-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 668 669 * magick/resize.c (ResizeImage): Move OpenMP instrumentation to 670 outer loop so that eventually there can be more performance. 671 672 2008-09-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 673 674 * magick/resize.c (MinifyImage): Accelerate using OpenMP. 675 676 * magick/command.c (ConvertImageCommand, MogrifyImageCommand): 677 Accept -gaussian-blur as a synonym for -gaussian. 678 (ConvertImageCommand, MogrifyImageCommand): Provide access to 679 MinifyImage() via -minify. 680 (ConvertImageCommand, MogrifyImageCommand): Provide access to 681 Magnifyimage() via -magnify. 682 683 2008-09-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 684 685 * magick/channel.c (ImportImageChannelsMasked): New function to 686 import all the channels from an image except for the channels 687 specified. 688 689 * magick/effect.c (AddNoiseImageChannel): New function to add 690 noise to an image channel. 691 (BlurImageChannel): New function to blur one image channel. 692 (GaussianBlurImageChannel): New function to gaussian blur an image 693 channel. 694 (UnsharpMaskImageChannel): New function to unsharpmask an image 695 channel. 696 (SharpenImageChannel): New function to sharpen an image channel. 697 698 2008-09-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 699 700 * magick/effect.c (MotionBlurImage): Use GetOptimalKernelWidth1D() 701 to estimate a reasonable convolution kernel size. Prepare code 702 for OpenMP but don't enable OpenMP until it runs faster. 703 (AddNoiseImageChannel): New function to apply noise to a specified 704 image channel. 705 706 2008-09-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 707 708 * magick/command.c (ConvertImageCommand): Provide `convert` access 709 to MotionBlurImage() via -motion-blur option. 710 (MogrifyImageCommand): Provide `mogrify` access to 711 MotionBlurImage() via -motion-blur option. 712 713 2008-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 714 715 * magick/effect.c (SpreadImage): Accelerate using OpenMP. 716 717 * coders/msl.c: Applied MSL patch from graphicsmagick-bugs list to 718 correct handling of geometry x,y values by setting gravity 719 attribute to ForgetGravity. 720 721 2008-09-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 722 723 * magick/effect.c (ShadeImage): Accelerate using OpenMP. 724 725 2008-09-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 726 727 * magick/effect.c (RandomChannelThresholdImage): Accelerate using 728 OpenMP. Support individual thresholding of the color channels. 729 (BlurImage): Blur was failing for PseudoClass images. This bug 730 was added on 2008-09-08. 731 732 * magick/pixel_cache.c (AcquireOneCacheViewPixel): New function to 733 return just one pixel from a cache view. 734 735 2008-09-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 736 737 * magick/effect.c (EnhanceImage): Accelerate using OpenMP. 738 (BlurImageScanlines): Added optimizations. 739 740 * magick/shear.c (IntegralRotateImage): Add missing progress 741 indication for 90 and 270 degrees rotation. 742 743 * www/perl.html: Fix formatting of examples. Should address 744 SourceForge issue [ 2100339 ] "Wrong format in example script on 745 web page". 746 747 2008-09-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 748 749 * magick/effect.c (BlurImage): Accelerate using OpenMP. 750 751 2008-09-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 752 753 * magick/fx.c (ColorizeImage): Re-implement using pixel iterators. 754 (MorphImages): Re-implement using pixel iterators. 755 (OilPaintImage): Accelerate using OpenMP. 756 (SolarizeImage): Re-implement using pixel iterators. 757 758 2008-09-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 759 760 * magick/fx.c (ConvolveImage): Accelerate using OpenMP. 761 762 * magick/effect.c (AdaptiveThresholdImage): Accelerate using OpenMP. 763 764 2008-09-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 765 766 * magick/pixel_cache.c: Exhuastive study of the pixel cache code 767 reveals that it is inscrutable and not implemented in a fashion 768 which enables useful multi-threading. Therefore, the cache view 769 interfaces are now made OpenMP-safe via a global critical section. 770 771 2008-09-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 772 773 * magick/pixel_iterator.c: Reduce use of critical sections around 774 pixel cache to the bare minimum based on analysis and testing. 775 Unfortunately, testing shows that the pixel cache views are still 776 not 100% thread safe so the extra locking is still required. 777 778 * magick/pixel_cache.c (ModifyCache): Make implementation thread 779 safe. This required removing a thread-unsafe optimization from 780 Bill Radcliffe. 781 782 * magick/command.c (BenchmarkImageCommand): Restore original 783 client name for each loop so that it is not extended further for 784 each iteration. 785 786 * magick/semaphore.c (UnlockSemaphoreInfo): Decrement lock depth 787 under protection of the lock. 788 789 2008-09-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 790 791 * magick/effect.c (AddNoiseImagePixels): Update to pass per-thread 792 `seed` value for more performance. 793 794 2008-08-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 795 796 * magick/gem.c (GenerateDifferentialNoise): Use 797 MagickRandReentrant(). Added a `seed` argument so that we can pass 798 a per-thread `seed` value. 799 800 * magick/utility.c (MagickRandNewSeed): New function to produce a 801 semi-random `seed` value. 802 (MagickRandReentrant): New function which works like rand() but 803 attempts to be re-entrant if possible by allowing a seed value to 804 be passed. 805 806 2008-08-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 807 808 * magick/channel.c (SetImageChannelDepth): Re-implement using 809 QuantumOperatorImage(). 810 811 * magick/image.c (SetImageDepth): Re-implement using 812 QuantumOperatorImage(). 813 814 * magick/operator.h (QuantumOperator): Added DepthQuantumOp for 815 setting the channel depth. 816 817 * magick/command.c (BenchmarkImageCommand): Add CPU-based 818 iteration rate metric to benchmark output. 819 820 * magick/resource.c (ListMagickResourceInfo): Include quantum 821 depth, bits per pixel, and process address size in resource 822 output so that output is more complete. 823 824 2008-08-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 825 826 * magick/image.c (SyncImage): Re-implement using pixel iterators. 827 (SortColormapByIntensity): Re-implement using pixel iterators. 828 (ClipPathImage): Re-implement using pixel iterators. 829 (CycleColormapImage): Re-implement using pixel iterators. 830 (GetImageDepth): Re-implement using pixel iterators. 831 (GradientImage): Parallize inner loop for speedup with larger 832 images. 833 (ReplaceImageColormap): Re-implement using pixel iterators. 834 (SetImage): Re-implement using pixel iterators. 835 836 2008-08-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 837 838 * magick/operator.c (QuantumGamma): Removed unnecessary OpenMP 839 request on inner loops. 840 841 * magick/enhance.c (EqualizeImage,NormalizeImage): Execute 842 histogram generation pixel iterator with just one thread to 843 decrease contention for the histogram array. 844 845 * magick/pixel_iterator.c (InitializePixelIteratorOptions): New 846 function to initialize PixelIteratorOptions with defaults. 847 848 * magick/pixel_iterator.h (PixelIteratorOptions): New structure to 849 support passing pixel iterator execution options. 850 851 2008-08-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 852 853 * NEWS.txt: Updated for changes to date in 1.3 development code. 854 855 * magick/pixel_iterator.c: Execute pixel iterators in parallel via 856 OpenMP. 857 858 * magick/pixel_cache.c (OpenCacheView): Ensure that pixel cache is 859 open. 860 (GetCacheInfo): Allocate semaphore immediately. 861 862 2008-08-16 Fojtik Jaroslav <JaFojtik@seznam.cz> 863 864 * coders/fits.c Writer now creates valid images according to 865 http://fits.gsfc.nasa.gov/fits_verify.html 866 Fixed problems: 1) zeros in HDU, 2) wrong padding. 3) possible 867 strlen() overflow. 868 869 2008-08-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 870 871 * magick/{compare.c, channel.c, enhance.c, image.c, operator.c}: 872 Update existing pixel iterator callback functions so that they are 873 OpenMP safe. 874 875 2008-08-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 876 877 * magick/compare.c (InitializeDifferenceImageOptions): Renamed 878 from DifferenceImageOptionsDefaults(). 879 (InitializeDifferenceStatistics): New function to initialize 880 DifferenceStatistics. 881 (ComputeAbsoluteError, ComputePeakAbsoluteError, 882 ComputeSquaredError): Use local totalizing structure on stack and 883 update cumulative statistics when the loop terminates. 884 885 2008-08-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 886 887 * www: Convert HTML pages to use a vibrant green theme rather than 888 colors stolen from old GIMP web site. 889 890 2008-08-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 891 892 * doc/{compare.imdoc, options.imdoc}: Added documentation for 893 `compare`. 894 895 * magick/compare.h (enum HighlightStyle): Added 896 AssignHighlightStyle for simple color assignment. `Annotate` is 897 now `Tint`. 898 899 * magick/command.c (CompareImageCommand): Useful options are now 900 -metric, -highlight-color, and -hightlight-style. 901 902 2008-08-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 903 904 * magick/compare.c (DifferenceImagePixels): Fixed `Annotate` 905 difference annotation algorithm. Added `Threshold` and `Xor` 906 difference annotation algorithms. 907 (GetImageChannelDifference): New function for computing 908 statistical image error using various metrics. Inspired by 909 `imgcmp` from Jasper. 910 (GetImageChannelDistortion): New function for obtaining 911 statistical image error using various metrics for a specified 912 image channel. Signature is compatible with similar ImageMagick 913 function. 914 (GetImageDistortion): New function for obtaining statistical image 915 error using various metrics for all the active channels in the 916 image. Signature is compatible with similar ImageMagick function. 917 918 * magick/command.c (CompareImageCommand): Added a `compare` 919 subcommand which compares two images using various metrics, and/or 920 generates a difference image using various difference annotation 921 algorithms. Documentation not yet updated. 922 923 2008-08-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 924 925 * magick/pixel_iterator.c: Split user context in all pixel 926 iterator APIs into a mutable data part, and an immutable data 927 part. This required modification to all modules using the pixel 928 iterator methods. 929 930 2008-07-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 931 932 * wand/magick_wand.c (MagickCompareImageChannels): Use 933 DifferenceImage(). 934 (MagickCompareImages): Implement by calling 935 MagickCompareImageChannels(). 936 937 * magick/compare.c (DifferenceImage): The ImageMagick-compatible 938 CompareImages() function signature was clearly an example of bad 939 design so rename CompareImages() to DifferenceImage() with a 940 signature which does not unnecessarily mix functionality and 941 allows for ease of future expansion. 942 943 2008-07-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 944 945 * wand/Makefile.am (WAND_TESTS): Added Wand drawtest and wandtest 946 to automated test suite. 947 948 2008-07-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 949 950 * magick/effect.c (ThresholdImage): Don't read uninitialized pixel 951 indexes (valgrind gripe). 952 953 * coders/tiff.c (CompressionSupported): Use 954 TIFFIsCODECConfigured() to test if a codec is supported. 955 956 * tests/{rwblob.c, rwfile.c}: use DestroyImageList() rather than 957 DestroyImage(). 958 959 * coders/psd.c (RegisterPSDImage): Fix module registration memory leak. 960 961 * coders/jpeg.c (RegisterJPEGImage): Fix module registration memory leak. 962 963 2008-07-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 964 965 * magick/blob.c (DestroyBlob, DestroyBlobInfo): Implementation is 966 a bit more robust. 967 968 2008-07-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 969 970 * coders/jpeg.c (ReadJPEGImage): Remove over-write of 971 image->client_data. Resolves SourceForge issue [ 2018974 ] 972 client_data is not passed to streamhandler. 973 974 * coders/png.c (WriteOnePNGImage): Fix crash when writing PNG 975 images with transparency and either type Optimize is requested, or 976 the image is colormapped. 977 978 2008-07-12 Fojtik Jaroslav <JaFojtik@seznam.cz> 979 980 * coders/mat.c Fixed problem: "In this case, the referenced 981 images had previously been deallocated but are still being used. 982 Since they are overwritten, their signatures are invalid. 983 984 2008-07-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 985 986 * coders/dcm.c (ReadDCMImage): Report actual image depth. 987 988 * magick/resource.c (InitializeMagickResources): Set default 989 maximum memory limit to physical memory rather than 2X physical 990 memory. This decision is made since the system paging device is 991 often slower than files in the filesystem, and so memory mapping 992 is likely faster. 993 994 * magick/blob.c (OpenBlob): The MAGICK_IO_FSYNC environment 995 variable causes output files to be synchronized to disk when set 996 to TRUE. 997 998 2008-07-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 999 1000 * www/GraphicsMagick.html: Improved formatting of documentation. 1001 1002 2008-07-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1003 1004 * magick/image.c (SetImageInfo): Make use of the new 1005 `extension_treatment` field. 1006 1007 * coders/dcraw.c (ReadDCRAWImage): Added a coder module to proxy 1008 from various common RAW camera format extensions to the `dcraw` 1009 delegate. 1010 1011 * magick/magick.h (MagickInfo): Add an extension_treatment member 1012 to indicate how file extensions should be treated for this coder. 1013 1014 2008-06-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1015 1016 * magick/{animate.c,quantize.c}: Replace !ColorMatch() with 1017 NotColorMatch(). 1018 1019 * utilities/Makefile.am (install-exec-local-utilities): Add back 1020 in support for --enable-magick-compat which was accidentally 1021 dropped in the new makefiles for GraphicsMagick 1.2. Resolves 1022 SourceForge bug 2005883. 1023 1024 * magick/color.h (NotColorMatch): New macro for testing that two 1025 colors are not the same. Opposite from existing ColorMatch(). 1026 1027 * magick/command.c: Replaced the many duplicate enum conversion 1028 code fragments with calls to functions in enum_strings.c. 1029 1030 * magick/enum_strings.c: Absorbed the many "ToString" and 1031 "StringTo" functions from other source modules. 1032 1033 * magick/effect.c (ThresholdImage): Optimize for larger images. 1034 1035 * magick/constitute.c (ConstituteTextureImage): New function to 1036 return a texture canvas image based on a tile image. Similar to 1037 existing TextureImage() except better optimized for creating new 1038 images and inherits tile image properties. 1039 1040 * magick/color.h (IsBlackPixel): New macro to test if a pixel is 1041 black. 1042 (IsWhitePixel): New macro to test if a pixel is white. 1043 1044 * coders/tile.c (ReadTILEImage): Use new ConstituteTextureImage() 1045 function rather than TextureImage(). Also allow the user to 1046 request a particular image type. 1047 1048 * coders/pdf.c (Huffman2DEncodeImage): Explicitly request a strip 1049 per page when writing Group4 TIFF. 1050 1051 * coders/tiff.c (WriteTIFFImage): Place a generous default limit 1052 on rows-per-strip when using Group3 or Group4 FAX compression. 1053 The default limit is added since it is observed that the Group4 1054 compressor fails with extremely huge strips. Added a define 1055 "tiff:rows-per-strip" to allow the user to explicitly set the rows 1056 per strip. Added a define "tiff:strip-per-page=true" to allow the 1057 user to force one strip per page no matter what. Added progress 1058 monitor support to tile writer. 1059 1060 2008-06-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1061 1062 * VisualMagick/configure/configure.cpp: The MAT coder now depends 1063 on zlib so add explicit dependencies for it. 1064 1065 * wand/magick_wand.c (MagickNegateImage): Implemented previously 1066 unimplemented Wand method. 1067 (MagickGammaImageChannel): Implemented previously unimplemented 1068 Wand method. 1069 1070 * magick/operator.h (enum QuantumOperator): Added GammaQuantumOp 1071 and "gamma" operator. Renamed InvertQuantumOp to NegateQuantumOp. 1072 1073 2008-06-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1074 1075 * magick/operator.h (enum QuantumOperator): Added InvertQuantumOp 1076 and "invert" operator. 1077 1078 * coders/xcf.c (GIMPBlendModeToCompositeOperator): For XCF format, 1079 we do support GIMP_DIVIDE_MODE composition now. Disable progress 1080 monitor during tile composition. 1081 1082 * magick/composite.c (DivideCompositePixels): New Divide composite 1083 operator contributed by Michael Burian <michael.burian@sbg.at>. 1084 1085 * magick/image.h (enum CompositeOperator): Added DivideCompositeOp. 1086 1087 * magick/enum_strings.c (CompositeOperatorToString): New function 1088 to convert a composite operator to a string. 1089 (StringToCompositeOperator): New function to convert a string to a 1090 composite operator. 1091 1092 2008-06-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1093 1094 * wand/magick_wand.c (MagickThresholdImageChannel): Implement 1095 previously unimplemented Wand function. 1096 (MagickGetImageExtrema): Implement previously unimplemented Wand 1097 function. 1098 (MagickGetImageChannelExtrema): Implement previously unimplemented 1099 Wand function. 1100 (MagickQueryFonts): Implement previously unimplemented Wand 1101 function. 1102 1103 2008-06-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1104 1105 * scripts/format_c_api_docs: Scan compare.c for API definitions. 1106 1107 * wand/magick_wand.c (MagickCompareImageChannels): Enable use of 1108 this function. 1109 (MagickCompareImages): Enable use of this function. 1110 1111 * magick/compare.c: New source file. 1112 (IsImagesEqual): Move here from magick/image.c. 1113 (CompareImageChannels): Initial implementation of function roughly 1114 similar to the one in ImageMagick. 1115 (CompareImages): Initial implementation of function roughly 1116 similar to the one in ImageMagick. 1117 1118 * magick/pixel_iterator.c (PixelIterateTripleModify): New pixel 1119 iterator function to access two images as read-only and one as 1120 read-write for updating existing pixels. 1121 (PixelIterateTripleNew): New pixel iterator function to access two 1122 images as read-only and one as read-write for creating new pixels. 1123 1124 2008-06-22 Fojtik Jaroslav <JaFojtik@seznam.cz> 1125 1126 * mat.c Added CloseBlob(). 1127 1128 2008-06-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1129 1130 * wand/magick_wand.c (MagickSetImageFormat): Add method to support 1131 setting the image format. 1132 1133 2008-06-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1134 1135 * magick/profile.c (ProfileImage): Convert to use pixel iterators. 1136 1137 2008-06-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1138 1139 * magick/channel.c (ImportImageChannel): Convert to use pixel 1140 iterators. 1141 (SetImageChannelDepth): Convert to use pixel 1142 iterators. 1143 1144 * Magick++/lib/Image.cpp (quantize): Error measurement support was 1145 being performed incorrectly. SyncImage() is not needed here. 1146 1147 2008-06-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1148 1149 * magick/channel.c (GetImageChannelDepth): Convert to use pixel 1150 iterators. 1151 1152 2008-06-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1153 1154 * coders/mat.c (RegisterMATImage): Set blob support to false for 1155 MAT coder until bug related to blobs is fixed. 1156 1157 2008-06-16 Fojtik Jaroslav <JaFojtik@seznam.cz> 1158 1159 * mat.c Ability to read a new compressed MATLAB image format. 1160 1161 2008-06-15 Fojtik Jaroslav <JaFojtik@seznam.cz> 1162 1163 * mat.c, wpg.c: For empty images a message ImageFileDoesNotContainAnyImageData 1164 is returned. 1165 1166 2008-06-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1167 1168 * magick/channel.c (ChannelImage): Convert to use pixel iterators. 1169 (ExportImageChannel): Convert to use pixel iterators. 1170 1171 * coders/dpx.c (WriteDPXImage): As an experimental feature, when 1172 the environment variable MAGICK_RESERVE_STORAGE is set to "TRUE", 1173 then the DPX format writer will request the required storage from 1174 the filesystem in advance (if supported by the OS) or the full 1175 amount of memory required (when writing to an in-memory BLOB). 1176 1177 2008-06-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1178 1179 * magick/magic.c (InitializeMagicInfo): New function to initialize 1180 file format detection. 1181 (GetMagickFileFormat): New internal implementation function to 1182 detect file format based on file header. 1183 (GetMagicInfo): This internal implementation function is eliminated. 1184 (MagicInfo): MagickInfo structure is now private to the 1185 implementation. 1186 1187 2008-06-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1188 1189 * magick/magick.c (ListMagickInfo): Replace "blob support" 1190 indication with the coder stability classification. 1191 (RegisterMagickInfo): Pay attention to coder classification. 1192 1193 * magick/magick.h (MagickInfo): Added a coder stability 1194 classification field as well as the MAGICK_CODER_STABILITY 1195 environment variable to choose which coders are enabled. 1196 1197 2008-06-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1198 1199 * magick/image.c (GetImageCharacteristics): Don't access image 1200 pixels if they are not defined yet. 1201 1202 * coders/{avi.c,avs.c,dcm.c,ept.c,fits.c,mtv.c,palm.c,rla.c,tga.c}: 1203 Readers are now much more robust when faced with reading random files. 1204 1205 2008-06-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1206 1207 * magick/image.c (SetImageInfo): Exclude all virtual delegates and 1208 coders for pseudo-formats. 1209 1210 2008-06-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1211 1212 * coders/dcm.c (ReadDCMImage): Make DCM reader quit immediately on 1213 EOF condition. 1214 1215 * coders/avi.c (ReadAVIImage): Make AVI reader more robust at 1216 rejecting bad files. 1217 1218 * configure.ac: Eliminated --enable-delegate-build option that I 1219 have not used or tested for almost ten years so it probably did 1220 not work anyway. Use --with-ttf=/prefix to specify the the 1221 installation prefix for freetype. Use 1222 --with-ttf=/prefix/bin/freetype-config to specify the whole path 1223 to freetype-config. 1224 1225 2008-06-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1226 1227 * magick/command.c (MogrifyImage): Add support for 1228 -black-threshold and -white-threshold. 1229 1230 * magick/image.h (enum ChannelType): Added GrayChannel 1231 enumeration. 1232 1233 * magick/operator.c (QuantumOperatorImageMultivalue): New 1234 implementation function to make creating legacy functions like 1235 black/white thresholding easier. 1236 1237 * wand/magick_wand.c (MagickBlackThresholdImage): Implemented. 1238 (MagickWhiteThresholdImage): Implemented. 1239 1240 * magick/effect.c (BlackThresholdImage): Implemented a 1241 BlackThresholdImage() which is similar to (but not identical to) 1242 the one in ImageMagick. 1243 (WhiteThresholdImage): Implemented a WhiteThresholdImage() which 1244 is similar to (but not identical to) the one in ImageMagick. 1245 1246 2008-06-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1247 1248 * magick/operator.c: Added support for additional channel 1249 operators (-operator) for applying noise to one or more channels. 1250 The additional operators are Noise-Gaussian, Noise-Impulse, 1251 Noise-Laplacian, Noise-Multiplicative, Noise-Poisson, and 1252 Noise-Uniform. The amount of noise applied is controlled via the 1253 numeric argument, which can specify the percentage of noise to 1254 apply. 1255 1256 * magick/enum_strings.c: New source module to contain the various 1257 EnumToString() and StringToEnum() functions which seem to multiply 1258 like bunny-rabbits. 1259 1260 * magick/gem.c (GenerateNoise): Poisson noise generation was 1261 taking excessively long and producing wrong results. Noise 1262 generation was only producing the correct amount of noise in the 1263 Q8 build. 1264 (GenerateDifferentialNoise): New function to return noise in a 1265 floating-point differential format. 1266 1267 2008-06-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1268 1269 * magick/pixel_iterator.h: Removed x,y coordinate information from 1270 all of the callback definitions since a use for this information 1271 has yet to be found. 1272 1273 * magick/composite.c (CompositeImage): Use individual callback 1274 functions for the composition operations. 1275 1276 * coders/xcf.c (ReadXCFImage): Deal with grayscale images the 1277 GraphicsMagick-way. 1278 1279 2008-06-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1280 1281 * coders/xcf.c (ReadXCFImage): Validate XCF file data so that 1282 corrupted files don't crash GraphicsMagick. 1283 1284 2008-05-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1285 1286 * coders/dpx.c (ReadDPXImage): Incrementally read user data 1287 part and check for EOF so that bogus files are rejected quickly. 1288 1289 * coders/cineon.c (ReadCINEONImage): Incrementally read user data 1290 part and check for EOF so that bogus files are rejected quickly. 1291 1292 2008-05-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1293 1294 * coders/pict.c (ReadPICTImage): Ensure that row_bytes calculation 1295 does not overflow. Verify that RLE decode does not overflow 1296 buffer. Validate image frame dimensions. 1297 1298 * coders/palm.c (ReadPALMImage): Validate PALM bits per pixel and 1299 colormap indexes. 1300 1301 * magick/resource.c (ListMagickResourceInfo): List controlling 1302 environment variable in `-list resource` output as a configuration 1303 usage reminder. 1304 1305 * coders/pdf.c (ReadPDFImage): Properly deal with reading rotated 1306 PDFs. 1307 1308 2008-05-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1309 1310 * FAQ.txt: Added a FAQ for how to extract and combine CMYK image 1311 channels to individual files. 1312 1313 2008-05-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1314 1315 * magick/fx.c (ConvolveImage): Eliminate unnecessary "range check" 1316 feature since range checking is not where the CPU time is going. 1317 1318 * magick/effect.c (UnsharpMaskImage): Re-write implementation to 1319 use pixel iterators. 1320 1321 * magick/pixel_iterator.c: Decided that the old per-pixel 1322 iterations were not useful enough to keep since the region-based 1323 ones are working fine. Moved pixel_row_iterator.c to 1324 pixel_iterator.c and renamed functions to remove the `Row` 1325 designation. 1326 1327 * magick/composite.c (CompositeImage): Automatically adjust 1328 colorspace of composite image so that it is compatible with canvas 1329 image. 1330 1331 * magick/alpha_composite.h (AlphaComposite): Fix alpha composite 1332 when both pixels contain transparency. 1333 1334 * PerlMagick/demo/demo.pl: Use segmentation parameters which 1335 are more suitable for our image. 1336 1337 2008-05-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1338 1339 * magick/composite.c (CompositeImage): CMYK copy composition 1340 operators automatically set the image colorspace to CMYK. 1341 1342 * coders/tiff.c (WriteTIFFImage): CMYK must take precedence over 1343 JPEG compression. We don't support JPEG compression in TIFF with 1344 CMYK. 1345 1346 2008-05-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1347 1348 * magick/effect.c (ChannelThresholdImage): Re-implement using 1349 pixel iterators. Support thresholding only the red channel by 1350 eliminating the switch to intensity thresholding if only one 1351 channel parameter is supplied. 1352 1353 * coders/tiff.c (WriteTIFFImage): Don't accidentially convert CMYK 1354 images to RGB. 1355 1356 * magick/composite.c (CompositePixels): Handle CopyBlack properly 1357 for CMYK images. 1358 1359 * magick/command.c (CompositeImageCommand): Support CopyCyan, 1360 CopyMagenta, CopyYellow, and CopyBlack. 1361 1362 * magick/composite.c (CompositeImage): Preserve the canvas image 1363 colorspace. 1364 1365 * doc/options.imdoc: Remove mention of thresholding at the channel 1366 level since this never worked in a useful fashion and now only 1367 simple intensity thresholding is available via -threshold. 1368 1369 * magick/command.c (MogrifyImage): Revert to using ThresholdImage() rather 1370 than ChannelThresholdImage(). 1371 1372 * PerlMagick/Magick.xs: Revert to using ThresholdImage() rather 1373 than ChannelThresholdImage(). 1374 1375 2008-05-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1376 1377 * magick/effect.c (AddNoiseImage): Implemented using pixel 1378 iterators. 1379 1380 * magick/pixel_row_iterator.c (PixelRowIterateDualNew): New pixel 1381 iterator. Similar to existing PixelRowIterateDualModify except 1382 that this one is for when initializing a new image. 1383 1384 2008-05-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1385 1386 * magick/composite.c (CompositeImage): Update image composition to 1387 use pixel iterator methods. 1388 1389 2008-05-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1390 1391 * magick/enhance.c: Re-wrote all enhancement functions in this 1392 module to be based on the pixel iterator methods. 1393 1394 * magick/command.c (ConvertImageCommand, MogrifyImageCommand, 1395 DisplayImageCommand): Gamma multiple channel syntax was broken. 1396 Now it is fixed. 1397 1398 2008-05-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1399 1400 * magick/colorspace.c (RGBTransformImage): Optimized lookup table 1401 generation performance to the maximum extent possible. 1402 (TransformRGBImage): Optimized lookup table 1403 generation performance to the maximum extent possible. 1404 1405 * magick/image.h (RoundDoubleToQuantum): New macro to explicitly 1406 safely round a `double` to a Quantum. 1407 (RoundFloatToQuantum): New macro to explicitly safely round a 1408 `float` to a Quantum. 1409 1410 * configure.ac: Add OpenMP support library to LIBS so that 1411 dependent applications will pick up this dependency without 1412 themselves needing to enable OpenMP. 1413 1414 * magick/command.c (CompositeImageList): Don't overwrite matte 1415 flag for CopyOpacity composition. 1416 1417 * magick/composite.c (CompositeImage): CopyOpacity composition 1418 needs the opacity channel to be enabled. 1419 1420 * PerlMagick/Magick.xs: Dissolve composition with Opacity was not 1421 working right. Now it does. 1422 1423 2008-05-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1424 1425 * magick/gem.c (HWBTransform): Hue value range was scaled wrong, 1426 leading to clipping. 1427 (TransformHWB): Hue value range was scaled wrong, leading to 1428 clipping. 1429 1430 2008-05-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1431 1432 * magick/colorspace.c (RGBTransformImage): Re-implement transform 1433 loops using PixelRowIterateMonoModify() in order to simplify the 1434 code. 1435 1436 2008-05-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1437 1438 * magick/colorspace.c (TransformRGBImage): Re-implement transform 1439 loops using PixelRowIterateMonoModify() in order to simplify the 1440 code. 1441 1442 * magick/{pixel_iterator.h, pixel_row_iterator.h}: Pass pixel 1443 colormap index/indexes to callback functions. Dependent code is 1444 adjusted to match. 1445 1446 2008-05-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1447 1448 * magick/command.c (ConvertImageCommand, MogrifyImageCommand, 1449 MogrifyImage): Add command access to the new channel operators. 1450 1451 * magick/operator.c (QuantumOperatorRegionImage): Support the new 1452 channel operators. Update to use PixelRowIterateMonoModify() for 1453 a bit more performance. 1454 1455 * magick/operator.h (enum QuantumOperator): Added new operators 1456 AssignQuantumOp, ThresholdQuantumOp, ThresholdBlackQuantumOp, and 1457 ThresholdWhiteQuantumOp. 1458 1459 2008-05-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1460 1461 * magick/command.c (VersionCommand): Report if OpenMP is supported 1462 by the build. 1463 1464 * configure.ac, Makefile.am: Install documentation according to 1465 the conventions established by the configure script. This 1466 installs the documentation under 1467 /usr/local/share/doc/GraphicsMagick by default. 1468 1469 2008-05-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1470 1471 * scripts/format_c_api_docs: Add pixel_iterator.c and 1472 pixel_row_iterator.c to API documentation formatter. 1473 1474 * magick/api.h: Include pixel_iterator.h and pixel_row_iterator.h. 1475 1476 * magick/Makefile.am (MAGICK_INCLUDE_HDRS): Formally install 1477 pixel_iterator.h and pixel_row_iterator.h. 1478 1479 * magick/image.c (IsImagesEqual): Update to use 1480 PixelRowIterateDualRead(). 1481 (GetImageStatistics): Update to use PixelRowIterateMonoRead(). 1482 1483 * magick/pixel_row_iterator.h: New interfaces which are similar to 1484 the already existing interfaces in pixel_iterator.h except that 1485 they pass a row to the callback rather than one pixel. 1486 1487 * magick/operator.c (QuantumOperatorRegionImage): Add progress 1488 monitor support. 1489 1490 * magick/pixel_iterator.c (PixelIterateMonoRead): Add a 1491 `description` argument and progress monitor support. 1492 (PixelIterateMonoModify): Add a 1493 `description` argument and progress monitor support. 1494 (PixelIterateDualRead): Add a 1495 `description` argument and progress monitor support. 1496 (PixelIterateDualModify): Add a 1497 `description` argument and progress monitor support. 1498 1499 * magick/resize.c (HorizontalFilter, VerticalFilter): Switch back 1500 to RoundSignedToQuantum() since some pixels were experiencing 1501 underflow. Localize some variables so that we don't have to 1502 declare them as private for OpenMP. 1503 1504 2008-05-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1505 1506 * configure.ac, magick/resize.c, PerlMagick/Makefile.PL.in: Added 1507 OpenMP support for parallelizing a task across multiple cores. 1508 1509 2008-05-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1510 1511 * configure.ac, magick/nt_base.h: Fix using libbz2 under MinGW. 1512 1513 * coders/{msl.c, svg.c, url.c}: Fix compilation with modern 1514 libxml2 under MinGW. 1515 1516 2008-05-08 Josue Andrade Gomes <josuegomes@gmail.com> 1517 1518 * magick/nt_base.h, libxml/include/win32config.h (vsnprintf): 1519 Fixed compilation issue noticed with Visual C++ 2008. 1520 1521 2008-05-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1522 1523 * magick/magick.c (GetMagickInfo): Simplify implementation. 1524 (RegisterMagickInfo): Remove any existing entry since module 1525 loading may result in duplicate entries. 1526 1527 2008-05-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1528 1529 * libtool: Update to libtool 1.2.4. 1530 1531 * magick/magick.h (MagickInfo): Store string attributes as `const 1532 char *` to statically allocated data rather than as heap allocated 1533 strings. THIS IS AN INTERFACE CHANGE. Using a coder written to 1534 the old interface is non-fatal but may resemble a small memory 1535 leak. The reason for the change is to avoid at least 880 needless 1536 malloc()/strlen()/strlcpy() operations at initialization time, and 1537 at least 880 free() calls at destruction time. While these 1538 operations did not take long, they are still an unnecessary 1539 overhead, which is increased in thread-safe applications. 1540 1541 * magick/module.c (OpenModule): Ignore requests to open modules 1542 which have already been opened. 1543 1544 * GraphicsMagick.spec.in: Add --with-included-ltdl to the default 1545 options since this seems safest until the libltdl validation logic 1546 is fully robust. This should be made user-configurable in the 1547 future. 1548 1549 * magick/Makefile.am (magick_libGraphicsMagick_la_LIBADD): Apply 1550 libltdl dependency argument as required for building. 1551 1552 * configure.ac: Intuit if the GraphicsMagick library will depend 1553 on -lltdl. 1554 1555 * Magick++/bin/GraphicsMagick++-config.in: Use substitutions 1556 rather than invoking GraphicsMagick-config in order to determine 1557 GraphicsMagick library usage requirements. This avoids problems 1558 when GraphicsMagick-config is not in the executable search path. 1559 1560 2008-05-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1561 1562 * GraphicsMagick.spec.in: NEWS was renamed to NEWS.txt. Enable 1563 libtool verbose output so it is possible to diagnose build 1564 failures. 1565 1566 2008-05-01 Fojtik Jaroslav <JaFojtik@seznam.cz> 1567 1568 * mat.c: gm convert -limit Pixels 1 input_gray_lsb_16bit.mat crap.miff 1569 don't rotate partial image. 1570 1571 2008-04-30 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1572 1573 * magick/magick.c (DestroyMagickInfoList): Use DestroyMagickInfo(). 1574 (UnregisterMagickInfo): Use DestroyMagickInfo(). 1575 (RegisterMagickInfo): Simplify dramatically by adding to the front 1576 of the list rather than maintaining alpha order. 1577 1578 * magick/image.c (DestroyImageInfo): Tidy up and simplify code. 1579 1580 * magick/constitute.c (WriteImage): Comment out the "bi-modal 1581 delegate" execution code until we determine what value it offers. 1582 The test suite passes without it. 1583 1584 * magick/magick.h (struct MagickInfo): There is no need for `name` 1585 to be allocated data so make it const. 1586 (DestroyMagickInfo): Add a static function to destroy a MagickInfo 1587 structure. Renamed previous DestroyMagickInfo to 1588 DestroyMagickInfoList and made it static. 1589 1590 2008-04-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1591 1592 * version.sh: GraphicsMagick 1.2 released. 1593 CVS head is now 1.3 development. 1594 1595 * png: Updated libpng to 1.2.27. 1596 1597 2008-04-28 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1598 1599 * magick/image.c (SetImageInfo): Ignore file extensions which 1600 match defined virtual delegate entries (including stealth 1601 entries). 1602 1603 2008-04-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1604 1605 * BENCHMARKS.txt: Added timings for -blur. 1606 1607 2008-04-27 Darko Kojic <dkc@sf.net> 1608 1609 * magick/effect.c (MedianFilterImage): Fixes to compile on ARM 1610 CPU. 1611 1612 2008-04-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1613 1614 * magick/magick.h (MagickInfo): Remove image_info member since I 1615 can not find any purpose for it. 1616 1617 * coders/tiff.c (WriteTIFFImage): Remove assertion check on 1618 scanline size since it has not caught anything. 1619 1620 * magick/image.c (SetImageInfo): Ensure that the file extension 1621 does not trigger unwanted activity such as access to an X11 1622 server, printer, or the launch delegate. 1623 1624 * config/Makefile.am (configshare_DATA): Install colors.mgk in 1625 share path. 1626 1627 * magick/blob.c (GetConfigureBlob): Search `share` config path 1628 prior to `lib` config path. 1629 1630 2008-04-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1631 1632 * coders/png.c (WriteOnePNGImage): TrueColor RGB was usually 1633 written rather than the desired more compact format. This is a 1634 first pass at fixing that. 1635 1636 2008-04-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1637 1638 * BENCHMARKS.txt: Added a benchmark summary. 1639 1640 2008-04-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1641 1642 * version.sh: Prepare 1.2beta1 release. 1643 1644 * NEWS.txt: Updated with latest news. 1645 1646 2008-04-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1647 1648 * libtool: Update to 1.2965 2008-04-22 1649 1650 * coders/png.c (ReadOneJNGImage): Deal with ReadImage() returning 1651 a NULL pointer when reading JPEG sub-image. 1652 1653 2008-04-21 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1654 1655 * magick/channel.c (ExportImageChannel): Added progress monitor 1656 support. 1657 (SetImageChannelDepth): Added progress monitor support. 1658 (ChannelImage): Don't preserve matte channel when extracting 1659 channel. 1660 1661 * magick/image.c (SetImageOpacity): Avoid integer overflow in Q32 1662 build. Added progress monitor support. 1663 (SyncImage): Added progress monitor support. 1664 (SetImage): Added progress monitor support. 1665 (CycleColormapImage): Added progress monitor support. 1666 (GetImageBoundingBox): Added progress monitor support. 1667 (SortColormapByIntensity): Added progress monitor support. 1668 1669 2008-04-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1670 1671 * configure.ac, magick/Makefile.am: Don't use libtdl unless we are 1672 supposed to be using it! 1673 1674 * libtool: Updated to GNU libtool 1.2960 2008-04-19. 1675 1676 * configure.ac, magick/delegate.h: It seems that the modern 1677 convention is to store ghostscript headers in a subdirectory 1678 called `ghostscript` rather than `ps`. 1679 We don't actually need Ghostscript errors.h and that is a good 1680 thing since it seems that some newer Ghostscript calls it ierrors.h 1681 1682 2008-04-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1683 1684 * VisualMagick/installer/inc/files-dlls.isx: Comment out inclusion 1685 of X11 support DLLs. 1686 1687 * VisualMagick/magick/magick_config.h.in: X11 is no longer in the 1688 default Windows build. 1689 1690 2008-04-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1691 1692 * magick/nt_base.c: Eliminate various annoying warnings noticed 1693 under MinGW. 1694 1695 * magick/spinlock.h (_spinlock_release): Use `long` rather than 1696 `int` in order to eliminate warning under MinGW. 1697 1698 * magick/semaphore.c (spinlock_wait): Use `long` rather than `int` 1699 in order to eliminate warning under MinGW. 1700 1701 * magick/log.c (LogMagickEventList): Eliminate warning under MinGW. 1702 1703 * magick/compress.h: Clean up interface definitions to use 1704 magick_uint8_t for unsigned character data. 1705 1706 * coders/jpeg.c (ReadJPEGImage): Don't use GetPixelCachePresent() 1707 since it is not DLL-exported. 1708 1709 2008-04-15 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1710 1711 * coders/yuv.c (ReadYUVImage): Report exception info correctly. 1712 1713 * coders/xpm.c (ReadXPMImage): Report exception info correctly. 1714 1715 * coders/xc.c (ReadXCImage): Report exception info correctly. 1716 1717 * coders/tiff.c (ReadTIFFImage): Report exception info correctly. 1718 1719 * coders/null.c (ReadNULLImage): Report exception info correctly. 1720 1721 * coders/jpeg.c (ReadJPEGImage): Report exception info correctly. 1722 Use of Huffman optimization is now based on available memory 1723 rather than a hard-coded image size. 1724 1725 * coders/gif.c (ReadGIFImage): Report exception info correctly. 1726 1727 * magick/utility.c (MagickSizeStrToInt64): New function to convert 1728 a size string with optional units suffix to a 64-bit integer. 1729 (MagickStrToInt64): New function to convert a string to a 64-bit 1730 integer, with error checking. 1731 1732 * magick/image.c (SetImage): SetImage now returns error status. 1733 1734 * magick/command.c: Eliminated the long-deprecated -cache resource 1735 limit option. 1736 1737 * magick/resource.c: Complete re-write of the resource limit 1738 system. Resource specifications are now absolute except that they 1739 support a binary metric suffix such as `K` to scale the value. 1740 Added the `Pixels` limit type to limit the maximum number of 1741 pixels allowed for each image. 1742 1743 2008-04-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1744 1745 * coders/jpeg.c (WriteJPEGImage): Output grayscale images more 1746 efficiently. 1747 1748 2008-04-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1749 1750 * lcms: Updated lcms to 1.17. 1751 1752 * png: Updated libpng to 1.2.26. 1753 1754 2008-04-09 Glenn Randers-Pehrson <glennrp@simple....> 1755 1756 * coders/png.c (ReadOnePNGImage) Use the low bits of the PNG 1757 tRNS values instead of scaling them when reducing from 16-bits. 1758 1759 2008-04-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1760 1761 * configure.ac: Updated to Autoconf 2.62. 1762 1763 2008-04-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1764 1765 * magick/command.c (MogrifyImageCommand): New -create-directories 1766 option automatically creates subdirectories as needed when 1767 -output-directory option is used. This is useful when one 1768 directory tree of files is being mogrified to a new tree. 1769 1770 2008-04-07 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1771 1772 * magick/utility.c (MagickCreateDirectoryPath): New function to 1773 create a directory path. Will be used later. 1774 * configure.ac: Tweaks to produce a successful MinGW cross-compile. 1775 1776 2008-04-04 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1777 1778 * coders/tiff.c (WriteTIFFImage): Added a simple sentinel 1779 assertion to hopefully flush out any remaining cases where 1780 ExportImagePixelArea() writes past the end of its buffer. 1781 1782 * magick/constitute.c (ExportImagePixelArea): GrayQuantum case for 1783 DirectClass pixels was sometimes writing a zero byte one past the 1784 end of the allocated buffer. Thanks to Josue Gomes for reporting 1785 this bug. 1786 1787 2008-04-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1788 1789 * coders/{pcd.c,pcx.c,pdb.c,pict.c,stegano.c,wpg.c,xcf.c}: 1790 Warnings reduction. 1791 1792 * magick/{channel.c,image.c,unix_port.c,render.c}: Warnings 1793 reduction. 1794 1795 * coders/mat.c: Convert C99 comments to C89 comments so code can 1796 compile with a C89 compiler. 1797 1798 * coders/tiff.c (WriteTIFFImage): Add an assertion to enforce that 1799 the bytes output to the scanline is no more than the bytes 1800 allocated for the scanline. 1801 1802 * NEWS.txt: Updated with latest NEWS. 1803 1804 2008-04-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1805 1806 * coders/pdf.c (WritePDFImage): Default to ZIP compression if 1807 available. Ignore Image compression setting since the useful 1808 value (set by the user) usually comes from ImageInfo. 1809 1810 * coders/png.c (WriteOnePNGImage): Fix progress monitor when 1811 writing PNG. 1812 1813 * magick/channel.c (GetImageChannelDepth): Added progress monitor 1814 support. 1815 1816 * magick/signature.c (SignatureImage): Added progress monitor support. 1817 1818 * magick/image.c (GetImageDepth): Added progress monitor support. 1819 1820 2008-04-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1821 1822 * libtool: Update to libtool 2.2.2. 1823 1824 * coders/jpeg.c: Convert more code to use size_t for sized values 1825 rather than long. 1826 1827 * coders/wpg.c (InsertRow): Fix log format string specification. 1828 1829 * coders/dpx.c (WriteDPXImage): Fix typo in casts. 1830 1831 * coders/fpx.c (ReadFPXImage): Apply FreeBSD patch from Mikhail 1832 Teterin to allow FlashPIX to work better for 64-bit builds. 1833 Addresses SourceForge issue 1824658 "FPX should work again now". 1834 1835 * magick/blob.c (ImageToBlob): Fix typo in cast. 1836 1837 2008-03-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1838 1839 * CONTRIBUTE.txt: Convert contribute.html to reStucturedText 1840 format and generate HTML version from it. 1841 1842 * PROCESS.txt: Convert description of development process to 1843 reStucturedText format and generate HTML version from it. 1844 1845 * INSTALL-windows.txt: Add instructions for how to install from 1846 setup.exe style installer. Also add instructions for how the 1847 distribution package is built. 1848 1849 * Copyright.txt: Reformat in reStucturedText format and generate 1850 HTML version from it. 1851 1852 * VisualMagick/installer/inc/body.isx: No longer include 1853 development headers and libraries in the Windows DLL install 1854 package since they are large and they may only work with the 1855 version of Visual C++ used to perform the build. It is much safer 1856 for the developer to build the package from source with his own 1857 compiler. 1858 1859 2008-03-27 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1860 1861 * Fix compilation issues with Microsoft Visual Studio. 1862 1863 2008-03-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1864 1865 * coders/dpx.c (ReadDPXImage, WriteDPXImage): Use lookup tables to 1866 speed up value conversion. 1867 1868 * magick/memory.h (MagickAllocateArray): Renamed from 1869 MagickAllocateMemoryElements. 1870 1871 2008-03-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1872 1873 * PerlMagick/Magick.xs: Use memory allocation macros like the rest 1874 of the code. 1875 1876 * magick/memory.c (MagickMalloc): New function which behaves 1877 similar to malloc(). 1878 (MagickMallocArray): New function for allocating an array. 1879 (MagickRealloc): New function which behaves similar to realloc(). 1880 (MagickFree): New function which behaves similar to free(). 1881 (MagickAllocFunctions): New function to allow the user to specify 1882 the memory allocation functions. 1883 1884 * magick/memory.h: New header file to define memory allocation 1885 functions. 1886 1887 * magick/deprecate.c (DeleteImageList, DestroyImages, 1888 GetImageList, GetImageListIndex, GetImageListSize, GetNextImage, 1889 GetNumberScenes, GetPreviousImage, ParseImageGeometry, 1890 PopImageList, PostscriptGeometry, PushImageList, 1891 SetCacheThreshold, SetImageList, ShiftImageList, SizeBlob, 1892 SpliceImageList, UnshiftImageList): Remove functions which were 1893 already deprecated in ImageMagick 5.5.2 or earlier. 1894 1895 2008-03-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1896 1897 * coders/dpx.c (WriteDPXImage): Support writing image which is 1898 already in a YCbCr colorspace. 1899 (ReadDPXImage): Return YCbCr images in YCbCr colorspace unless 1900 they are also Cineon log encoded. 1901 1902 * magick/image.c (CloneImage): Use CloneImageAttributes(). 1903 1904 * magick/attribute.c (CloneImageAttributes): New function for 1905 copying image attributes from one image to another. 1906 1907 * magick/utility.c (TranslateTextEx): Check if the pixel cache is 1908 initialized before using a function which requires using it. 1909 Thanks to Micha³ Kowalczuk for bringing this issue to my 1910 attention. 1911 1912 * magick/attribute.c (SetImageAttribute): Only apply 1913 transformations to "comment" and "label" attributes. 1914 1915 * magick/pixel_cache.c (GetPixelCachePresent): New function to 1916 test if the image pixel cache is present and initialized. 1917 1918 2008-03-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1919 1920 * magick/colorspace.c (RGBTransformPacket): Rationalize casts for 1921 improved performance. 1922 1923 * magick/image.c (GetImageDepth): Use table lookups to improve 1924 performance. 1925 1926 2008-03-16 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1927 1928 * magick/image.c (AllocateImage): Transfer any attributes from 1929 ImageInfo to allocated image. 1930 (SetImageDepth): Use table lookups to improve performance. 1931 1932 2008-03-14 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1933 1934 * magick/command.c (MogrifyImageCommand): Added an 1935 -output-directory option to `mogrify` to send output files to the 1936 specified directory. 1937 1938 2008-03-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1939 1940 * PerlMagick/t/read.t: Add input_logical_lsb_08bit.mat to 1941 PerlMagick tests. 1942 1943 * magick/nt_feature.c (CropImageToHBITMAP, ImageToHBITMAP): Use 1944 GlobalFree() to free bitmap handle. 1945 1946 2008-03-10 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1947 1948 * PerlMagick/t/read.t: Added/adjusted WPG test files from Jaroslav 1949 Fojtik. 1950 1951 2008-03-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1952 1953 * AUTHORS.txt, BUGS.txt, FAQ.txt, NEWS.txt, PLATFORMS.txt, 1954 TODO.txt, INSTALL-unix.txt, INSTALL-windows.txt: Use 1955 reStructuredText format. 1956 1957 * Makefile.am: Use reStructuredText for more files. 1958 1959 2008-02-29 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1960 1961 * magick/constitute.c (ReadImage): Disable colorspace override 1962 code since it was being wrongly-triggered in X11 display commands. 1963 1964 2008-02-23 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1965 1966 * www/body.html: Update to mention 1.1.11 release. 1967 1968 2008-02-20 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1969 1970 * magick/colorspace.c (RndToInt): Cast result to `unsigned int` 1971 rather than `int` in order to avoid possible value truncation with 1972 Q32 build. Problem was reported by Kai-Uwe Behrmann. 1973 (TransformRGBImage): Fix loop iterator which was looping one past 1974 the end of the array. Reported by Kai-Uwe Behrmann. 1975 1976 * magick/command.c: Added a -set option to the composite, convert, 1977 display, mogrify, import commands in order to allow setting an 1978 image attribute. 1979 1980 2008-02-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1981 1982 * PerlMagick/Magick.xs: Use MagickAcquireMemory() rather than 1983 AquireMemory(). 1984 1985 * coders/xwd.c (ReadXWDImage): Eliminate integer overflow 1986 vulnerability (IDefense 09.19.07). 1987 1988 * coders/xbm.c (ReadXBMImage): ditto 1989 1990 * coders/xcf.c (ReadXCFImage): ditto 1991 1992 * coders/dib.c (ReadDIBImage): ditto 1993 1994 * coders/dcm.c (ReadDCMImage): ditto 1995 1996 2008-02-09 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 1997 1998 * coders/tiff.c (WriteTIFFImage): The RFC 3949 specification for 1999 Internet FAX recommends LSB2MSB fill order so document that. 2000 2001 2008-02-08 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2002 2003 * coders/tiff.c (WriteTIFFImage): Use `-define 2004 tiff:fill-order={msb2lsb|lsb2msb}` to control TIFF bit fill order. 2005 2006 2008-02-06 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2007 2008 * configure.ac: Updated to latest CVS libtool. 2009 2010 * coders/tiff.c (CompressionSupported): Use 2011 TIFFGetConfiguredCODECs() to test if a requested compression type 2012 is supported by libtiff. Based on advice from Frank Warmerdam. 2013 2014 * configure.ac: Add test for TIFFGetConfiguredCODECs() in libtiff. 2015 2016 2008-02-05 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2017 2018 * coders/tiff.c: With libtiff 3.6.1, including tiff.h and tiffio.h 2019 is not sufficient to obtain the definitions from tiffconf.h so 2020 libtiff is assumed to not support any features, such as 2021 compression. Avoid this problem by explicitly including 2022 tiffconf.h if it is found. This resolves SourceForge issue 2023 [1883527] compression of tiff-file has no effect. 2024 2025 2008-02-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2026 2027 * VisualMagick/installer/inc/setup.isx: Set Inno Setup installer 2028 compression to "lzma/max". 2029 2030 * PerlMagick/Magick.xs: Eliminate use of memory allocation macros 2031 since these failed miserably under Windows where it seems that 2032 malloc, free, and realloc are redefined via macros by the Perl 2033 build environment. This reverts changes made on 2007-12-01. 2034 2035 * magick/memory.c (MagickAcquireMemoryArray): Use implementation 2036 from the 1.1 branch. 2037 2038 * magick/utility.h: Remove MagickSafeMultiplySize_t since it seems 2039 that use of inline functions in Windows is a disaster area. 2040 2041 2008-02-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2042 2043 * Makefile.am (windows-dist): Create a 7z compressed Windows 2044 comprehensive source package. See http://www.7-zip.org/ for 2045 information on Windows 7-Zip and http://p7zip.sourceforge.net/ for 2046 information on portable 7-Zip (P7ZIP). 2047 2048 2008-02-01 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2049 2050 * coders/tiff.c (WriteTIFFImage): Add logging for image resolution 2051 and resolution units. 2052 2053 * magick/version.h.in: Update copyright year to 2008. 2054 2055 2008-02-01 Gary V. Vaughan <gary@gnu.org> 2056 2057 * configure.ac: Updated for libtool-2.1b. 2058 2059 * bootstrap (libtoolize): Libtoolize can figure out the mode and 2060 directory for libltdl from configure.ac. 2061 2062 2008-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2063 2064 * magick/Makefile.am: Update 2065 magick_libGraphicsMagick_la_DEPENDENCIES to use LTDLDEPS. 2066 2067 2008-01-26 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2068 2069 * magick/image.c (SetImageInfo): Successfully read existing file 2070 names in the form file[123] which were failing to read since they 2071 appear to be a valid sub-image specification. 2072 2073 2008-01-24 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2074 2075 * magick/utility.c (ExpandFilenames): If a filename appears to 2076 contain a wildcard specification, first check to see if there is 2077 file matching the unexpanded wildcard prior to engaging in the 2078 slow task of wildcard expansion. Without this fix, expanding the 2079 command line takes a very long time if there are a huge number of 2080 files in the directory, and some file names appear to contain 2081 wildcard specifications. Inspired by SourceForge bug reports [ 2082 1878992 ] "literal square brackets in file name cause large delay" 2083 and [ 1783209 ] "converting runs slowly when subimage is 2084 specified", but this might not be the complete fix for the 2085 problem. 2086 2087 2008-01-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2088 2089 * Makefile.am: Update to Automake 1.10.1 and enable generation of 2090 an lzma compressed source package. 2091 2092 2008-01-19 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2093 2094 * configure.ac: Added configure option --with-umem to enable use 2095 of the umem memory allocation library available in Solaris 9, 2096 Update 3 and later, or from 2097 https://labs.omniti.com/trac/portableumem/. This library supports 2098 concurrency in multi-threaded programs and supports debugging 2099 memory issues. See 2100 http://developers.sun.com/solaris/articles/libumem_library.html 2101 for a description of how to use the library for debugging memory 2102 issues. 2103 2104 2008-01-17 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2105 2106 * magick/command.c (VersionCommand): Include a "Large Memory" item 2107 in the Feature Support list. 2108 2109 * coders/png.c (RegisterPNGImage): Remove reference to dead PNG 2110 ftp site. 2111 2112 * VisualMagick/configure/configure.cpp (InitInstance): Remove 2113 project dependency on dxguid.lib (Direct-X). 2114 2115 2008-01-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2116 2117 * configure.ac: Update libtool to latest CVS version. 2118 2119 2008-01-02 Bob Friesenhahn <bfriesen@simple.dallas.tx.us> 2120 2121 * magick/command.c (DisplayImageCommand): No longer default to 2122 reading standard input if stdin fails isatty() test. This 2123 behavior was causing failure to launch from Gnome and it is 2124 difficult to work around the issue from within a .desktop file. 2125 (AnimateImageCommand): No longer default to 2126 reading standard input if stdin fails isatty() test. 2127