mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-02 02:10:46 -08:00
148 lines
No EOL
5.8 KiB
Text
148 lines
No EOL
5.8 KiB
Text
This is the imagemagick branch of Emacs. Imagemagick can now be used
|
|
to load many new image formats, and also do useful transforms like
|
|
scaling and rotation.
|
|
|
|
This file will attempt to contain draft NEWS, Changelog and manual
|
|
entries for the new functionality.
|
|
|
|
You might need to regenerate the configure scripts:
|
|
aclocal
|
|
automake
|
|
autoheader
|
|
autoconf
|
|
./configure --with-imagemagick
|
|
|
|
|
|
* TODO
|
|
|
|
- image-type-header-regexps priorities the jpeg loader over the
|
|
imagemagick one. This is not wrong, but how should a user go about
|
|
prefering the imagemagick loader? The user might like zooming etc in
|
|
jpegs.
|
|
|
|
- For some reason its unbearably slow to look at a page in a large
|
|
image bundle using the :index feature. The imagemagick "display"
|
|
command is also a bit slow, but nowhere near as slow as the emacs
|
|
code. It seems imagemagick tries to unpack every page when loading
|
|
the bundle. This feature is not the primary usecase for the
|
|
imagemagick patch though.
|
|
|
|
- optimize number of pages calculation for bundles as suggested by
|
|
imagemagick forum: "set the density to something low like 2 and use
|
|
MagickPingImage()"
|
|
|
|
- zooming the image like what is done for fonts in face-remap.el would
|
|
be a useful and demo friendly addition. Some work has been done on
|
|
image-mode.el to acihieve this.
|
|
|
|
- look for optimizations for handling images with low depth
|
|
|
|
- it would be neat if the graphicsmagick fork of imagemagick could
|
|
optionaly be used.
|
|
|
|
|
|
|
|
* TODO
|
|
#B _ complete documentation drafts below
|
|
|
|
#B X fix inconsistencys with spelling of imagemagick in the src
|
|
#B X report number of images in image bundle types somehow
|
|
Works like for "gif" support. Thanks to Juri Linkov.
|
|
#B X probably add pdf to inhibited types
|
|
#B X inhibit types is defconst should probably be defcustom
|
|
#B _ decide what to do with some uncommitted imagemagick support
|
|
functions for image size etc.
|
|
#B _ Test with more systems
|
|
Tested on Fedora 12 so far, and the libmagick that ships with it.
|
|
Ubuntu 8.04 was also tested, but it seems it ships a broken ImageMagick.
|
|
#B X Also need some way to handle render methods that only work on newer ImageMagicks
|
|
Is handled by configure now
|
|
|
|
* Some nits from Stefan Monnier
|
|
I just took a quick look at the code and I see the following nits to fix:
|
|
#B _ obviously a merge will have to come with a good ChangeLog.
|
|
#B X also the merge will need to come with documentation. Maybe not in the
|
|
Texinfo form yet, but at least in the etc/NEWS with enough info that
|
|
describes the `scale' and other such arguments that someone can start
|
|
using them.
|
|
#B X the README talks about naming inconsistencies, I think these should be
|
|
fixed before a first commit (should be straightforward).
|
|
|
|
#B X the "let" in image.el should not be followed by a line break and the while
|
|
should be replaced by a dolist.
|
|
|
|
#B X the prototype of imagemagick_load_image has some odd indentation in ([[2010.06.14]])
|
|
its args, not sure what happened.
|
|
#B X a few lines in the C code break the 80columns limit.
|
|
#B X please use ANSI style function declarations rather than K&R for new code. ([[2010.06.14]])
|
|
#B X you can get rid of the prototypes by reordering the code. ([[2010.06.14]])
|
|
#B X the docstrings in DEFUN should not be indented (they'll display ([[2010.06.14]])
|
|
weirdly otherwise in C-h f).
|
|
#B X Some "{" are at the end of a for/if rather than on their own line. ([[2010.06.14]])
|
|
#B X why use "*( imtypes + i)" rather than "imtypes[i]"? ([[2010.06.14]])
|
|
#B X some "," lack a space after them. ([[2010.06.14]])
|
|
#B X several "=" and "==" lack spaces around them. ([[2010.06.14]])
|
|
|
|
|
|
* NEWS entry
|
|
** ImageMagick support
|
|
It is now possible to use the Imagemagick library to load many new
|
|
image formats in Emacs.
|
|
|
|
To enable, use the following configure option:
|
|
--with-imagemagick
|
|
|
|
The new function (imagemagick-types) returns a list of image file
|
|
extensions that your installation of imagemagick supports.
|
|
|
|
The function (imagemagick-register-types) will enable the imagemagick
|
|
support for the extensions in imagemagick-types minus the types listed
|
|
in imagemagick-types-inhibit.
|
|
|
|
imagemagick-types-inhibit has the value '(C HTML HTM TXT PDF) by default.
|
|
This means imagemagick will be used also to load jpeg files, if you
|
|
have both jpeg and imagemagick libraries linked. Add 'JPG to
|
|
imagemagick-types-inhibit if you do not want this.
|
|
|
|
imagemagick-render-type is a new variable which can be set to choose
|
|
between screen render methods.
|
|
|
|
- 0 is a conservative metod which works with older ImageMagick
|
|
versions. It is a bit slow, but robust.
|
|
|
|
- 1 utilizes a newer ImageMagick method
|
|
|
|
|
|
Images loaded with imagemagick will support a couple of new display
|
|
specification behaviours:
|
|
|
|
- if the :width and :height keywords are specified, these values are
|
|
used for scaling the image. If only one of :width or :height is
|
|
specified, the other one will be calculated so as to preserve the
|
|
aspect ratio.If both :width and :height are specified, aspect ratio
|
|
will not be preserved.
|
|
|
|
- :rotation specifies a rotation angle in degrees.
|
|
|
|
- :index specifies which image inside an image bundle file format, such
|
|
as TIFF or DJVM, to view.
|
|
|
|
The image-metadata function can be used to retrieve the total number
|
|
of images in an image bundle. This is simmilar to how GIF files work.
|
|
|
|
* Changelog entry
|
|
2010-06-12 Joakim Verona <joakim@verona.se>
|
|
* image.c: Add support for ImageMagick. When HAVE_IMAGEMAGICK is
|
|
defined:
|
|
(imagemagick_image_p): New function to test for ImageMagic img.
|
|
(imagemagick_load): New function to load ImageMagick img.
|
|
(imagemagick_load_image): New function, helper for imagemagick_load
|
|
(imagemagick-types): New function.
|
|
(Qimagemagick): New Lisp_object.
|
|
* image.el:
|
|
(imagemagick-types-inhibit): New var.
|
|
(imagemagick-register-types): New function.
|
|
* config.in, Makefile.in, configure.in
|
|
|
|
* Manual entry
|
|
nothing yet, but the NEWS entry could be adapted. |