Commit Graph

28 Commits

Author SHA1 Message Date
Daniel Löbl ed79cfba7e
magicksave: Add bitdepth option (#2819)
* flag to save bmp with bitdepth 1

* magicksave: add bitdepth option

* update comments

* update documentation

* revised based on review comments

Co-authored-by: Thomas Barton <thomasryanbarton@gmail.com>
2022-05-27 11:41:01 +01:00
DarthSim c7e0c073ca Add `optimize_gif_frames` and `optimize_gif_transparency` options to `vips_magicksave` 2019-08-08 02:52:54 +06:00
John Cupitt dc8555201d use our sniffer as well is ismagick()
We need to check files for magickload with our sniffer as well as the
imagemagick one.
2019-06-08 17:13:49 +01:00
John Cupitt bb75535151 much faster ismagick
We used to Ping files to see if IM would load them, but this can be
extremely slow for file formats like ARW.

Instead, use GetImageMagick() ... it just checks the magic number.
2019-06-08 16:47:40 +01:00
John Cupitt 02bdb8b96c better error message for "unsupported colorspace"
we just printed the enum number before
2019-05-24 17:42:10 +01:00
John Cupitt 931b661d2b fix up and test with im6/im7/gm
seems to work! phew
2019-02-07 18:35:51 +00:00
John Cupitt 90fef08ee0 start adding xmp/icc/exif/etc. for IM
needs to work for im6, im7 and gm, and it's not quite there yet :(
2019-02-06 16:39:14 +00:00
John Cupitt 10b3000581 reorganise magicksave a little 2019-02-06 10:24:11 +00:00
DarthSim cd1560c1cb vips_magicksave for GraphicsMagick 2019-02-06 00:07:30 +06:00
John Cupitt 1619c8b1a1 fix memleak in magick6load
IM ExceptionInfo were not being freed correctly. This patch
adds a small wrapper function and uses it to allocate and free all IM
exception objects.

Tested with im 6.9 and gm 1.3.

See:

https://github.com/libvips/lua-vips/issues/24

https://github.com/libvips/libvips/issues/1203
2019-01-04 08:38:58 +00:00
John Cupitt e89dac20bb add sniffing framework to magickload
though it only spots ICO for now

see https://github.com/jcupitt/pyvips/issues/39
2018-07-24 17:38:36 +01:00
John Cupitt 0486218ff5 don't use Ping in magickload
it's too unreliable :-( we are forced to read every time
2018-05-29 17:20:46 +01:00
John Cupitt 1a95b2df89 fix tga header read
When you ping() an image with imagemagick to get the header, some format
loaders (eg. TGA) don't set all the fields. In this case,
image->colormap was not set and that made GetImageChannelDepth() crash.

Work around this, at least in this case, by allocating a colourmap
ourselves if none is set.

see https://github.com/jcupitt/libvips/issues/980
2018-05-25 16:02:25 +01:00
John Cupitt c349b31c5f magicksave polishing
- make better use of the magick.c wrappers in magickload
- disable magicksave if ImportImagePixels() is not found, fixing build
  against GM
2018-05-18 17:40:29 +01:00
John Cupitt 38ea5937ca more help for graphicsmagick
but still not quite there
2018-04-24 17:14:51 +01:00
John Cupitt 8d08255ff7 rename HAVE_MAGICK as HAVE_MAGICK6
clearer meaning
2017-12-23 17:13:44 +00:00
John Cupitt 140a3b3ed0 try to improve error handling in magicksave 2017-12-23 14:53:15 +00:00
John Cupitt e12df167e6 Merge branch 'magicksave' of https://github.com/dlemstra/libvips into dlemstra-magicksave 2017-12-23 12:39:50 +00:00
John Cupitt 7ab77d66c3 move magicksave write struct into class
magicksave used to have its own Write struct to track write state.
Instead, keep the write state in the save class.

break the magick6/magick7 compat wrappers out into a separete file so they
can be shared with the loaders.

small style changes.
2017-12-23 12:12:11 +00:00
John Cupitt c90b8be0b8 add tiffsave_buffer
add tests

also some cleanups to foreign include files

see https://github.com/jcupitt/libvips/issues/417
2016-10-15 12:29:14 +01:00
John Cupitt 8e667fbb3e still not quite there
works, but is no faster, how odd

john@kiwi:~/pics$ time vips magickload nipguide.pdf[40] x.tif
real	0m0.244s
user	0m0.212s
sys	0m0.040s

$ time vips magickload nipguide.pdf x.tif --page 40
real	0m7.035s
user	0m6.900s
sys	0m0.152s

both give same result
2016-02-15 08:53:23 +00:00
Maurus Cuelenaere dba1b1d81b Add ImageMagick buffer support
This commits adds buffer support for the ImageMagick backend, using the Blob
API.
2015-02-15 21:45:17 +01:00
John Cupitt 76653e9e78 add notes to logs for @density 2014-12-04 21:47:46 +00:00
Lovell Fuller 14c8aa33fc Expose 'density' attribute for magickload
Allows control of vector format resolution
2014-12-04 17:01:06 +00:00
John Cupitt c77386f3cf vips_magickload() only reads 1st image in sequence
with an @all_frames option to get them all, thanks acrispino
2013-06-11 14:29:43 +01:00
Benjamin Gilbert 8cc76a6ba3 Update address for Free Software Foundation
Also update LGPLv2.1 license text from the copy currently on the GNU
website.
2013-03-07 00:40:19 -05:00
John Cupitt 26f2105e5b make everything LGPL2.1+
some files were incorrectly tagged as GPL, thanks Dmitry
2012-09-17 11:52:32 +01:00
John Cupitt 3015d7d7b8 move imagemagick load over to the new style 2011-12-19 08:58:04 +00:00