As ImageMagick output is different for different versions, and different (even

incompatible) options are to be used to obtain the same result, it is better
to query the version and accordingly use the needed options (bug 4749).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_5_X@26220 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Enrico Forestieri 2008-08-20 00:50:44 +00:00
parent 021270b5e9
commit 695f8e233b
2 changed files with 23 additions and 9 deletions

View File

@ -17,17 +17,28 @@
# replacement in ~/.lyx/scripts
# converts an image from $1 to $2 format
import os, sys
import os, re, sys
# We may need some extra options only supported by recent convert versions
re_version = re.compile(r'^Version:.*ImageMagick\s*(\d*)\.(\d*)\.(\d*).*$')
fout = os.popen('convert -version 2>&1')
output = fout.readline()
fout.close()
version = re_version.match(output)
major = int(version.group(1))
minor = int(version.group(2))
patch = int(version.group(3))
version = hex(major * 65536 + minor * 256 + patch)
opts = "-depth 8"
# for pdf source formats, check whether convert supports the -define option
if sys.argv[1][:4] == 'pdf:':
defopt = "-define pdf:use-cropbox=true"
fout = os.popen('convert ' + defopt + ' 2>&1')
output = fout.read()
fout.close()
if not 'unrecognized' in output.lower():
opts = defopt + ' ' + opts
# If supported, add the -define option for pdf source formats
if sys.argv[1][:4] == 'pdf:' and version >= 0x060206:
opts = '-define pdf:use-cropbox=true ' + opts
# If supported, add the -flatten option for ppm target formats (see bug 4749)
if sys.argv[2][:4] == 'ppm:' and version >= 0x060305:
opts = opts + ' -flatten'
if os.system(r'convert %s "%s" "%s"' % (opts, sys.argv[1], sys.argv[2])) != 0:
print >> sys.stderr, sys.argv[0], 'ERROR'

View File

@ -68,6 +68,9 @@ What's new
- Fix LaTeX error with deleted straight quotes in change tracking mode
(bug 5091; only fixed for T1 font encoding).
- Produce better quality images on the LyX screen when using recent
versions of ImageMagick (bug 4749).
* USER INTERFACE