当前位置:  开发笔记 > 编程语言 > 正文

在OSX上使用PNG支持从源代码编译ImageMagick

如何解决《在OSX上使用PNG支持从源代码编译ImageMagick》经验,为你挑选了1个好方法。



1> Mark Setchel..:

以下是我在OSX上从源代码安装ImageMagick的方法.

1.安装Xcode

首先,无论你做什么,你都需要Apple编译器和开发工具.所以,启动AppStore它看起来像这样:

在此输入图像描述

并免费下载Xcode- 它看起来像这样:

在此输入图像描述

2.安装命令行工具

一旦你已经Xcode安装了,你需要安装的命令行工具(即铛,铛++,令)是这样的:

xcode-select --install

3.选择您的方法 - homebrew或a Life of Agony

现在您需要选择继续进行的方式.最简单的选择是使用英里和英里数homebrew.另一种方法是自我描述的.

3A.自制方法

Go to the homebrew website and copy and paste the one-liner there into your Terminal - I won't show it here because it may change and I want you and future readers to use the current command. Once homebrew is installed, you just do this to choose your ImageMagick options:

brew options imagemagick

--with-fftw
    Compile with FFTW support
--with-fontconfig
    Build with fontconfig support
--with-ghostscript
    Build with ghostscript support
--with-hdri
    Compile with HDRI support
--with-jp2
    Compile with Jpeg2000 support
--with-liblqr
    Build with liblqr support
--with-librsvg
    Build with librsvg support
--with-libwmf
    Build with libwmf support
--with-little-cms
    Build with little-cms support
--with-little-cms2
    Build with little-cms2 support
--with-openexr
    Build with openexr support
--with-openmp
    Compile with OpenMP support
--with-pango
    Build with pango support
--with-perl
    enable build/install of PerlMagick
--with-quantum-depth-16
    Compile with a quantum depth of 16 bit
--with-quantum-depth-32
    Compile with a quantum depth of 32 bit
--with-quantum-depth-8
    Compile with a quantum depth of 8 bit
--with-webp
    Build with webp support
--with-x11
    Build with x11 support
--without-freetype
    Build without freetype support
--without-jpeg
    Build without jpeg support
--without-libpng
    Build without libpng support
--without-libtiff
    Build without libtiff support
--without-magick-plus-plus
    disable build/install of Magick++
--without-opencl
    Disable OpenCL

and then having selected your options, you install with

brew install imagemagick --with-perl --with-librsvg

or whatever you want. Then you are finished and you don't need to read the following torture!

Later on, upgrades are simple:

brew update && brew upgrade --all

Problem-solving is simple:

brew doctor

Uninstallation is simple:

brew rm imagemagick

3b. Life of Agony™ Method

Ok, I see you sadly decided on a Life of Agony™, so be it. I hope you know tar, bash, environment variables, gzip, make, curl. Now would be a good time to think again and use homebrew after all....

你肯定想继续吗?好的,一般的想法是决定你需要什么功能,先安装功能,然后安装ImageMagick.

4.设置构建区域和环境

在$ HOME/.profile中设置两个目录和两个环境变量.这些将是build您构建软件的sw区域以及您将本地软件安装到的区域:

export MSBUILD=$HOME/build
export MSSW=$HOME/sw

现在将您的个人资料发送到您当前的会话中

. $HOME/.profile

或者只是注销并重新登录,以便上述变量生效.

接下来创建两个目录:

mkdir "$MSBUILD" "$MSSW"

5.考虑您需要的功能

现在考虑一下您需要什么功能:

5.1功能= PNG支持

如果您需要PNG支持,首先需要zlib.在您的Web浏览器中,转到zlib网站并找到最新版本的名称.然后在终端:

cd $MSBUILD
curl -O -J -L http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.xz/download

which gets you this zlib-1.2.8.tar.xz (or similar) which you can unpack and install with:

tar xvfJ zlib*.tar.xz          # Unzip and untar what you downloaded
cd zlib*[0-9]                  # Change directory to wherever it unpacked to
./configure --prefix="$MSSW"   # Configure with the necessary prefix
make
make install

Now you want libpng which you do with:

curl -O -J -L http://sourceforge.net/projects/libpng/files/latest/download?source=files

which gets you this (or similar):

libpng-1.6.17.tar.xz

which you install with this command:

tar xvfJ libpng*xz             # Unpack and untar whatever you downloaded
cd libpng*[0-9]                # Change directory to wherever it unpacked to
./configure --prefix="$MSSW"   # Configure with the necessary prefix
make 
make install

5.2 Feature = TIFF Support

If you need TIFF support, use this:

cd $MSBUILD
curl -O -J -L ftp://ftp.remotesensing.org/libtiff/tiff-4.0.3.tar.gz
tar xvfz tiff*tar.gz             # Unzip and untar what you downloaded
cd tiff*[0-9]                    # Change directory to wherever it unpacked to
./configure --prefix="$MSSW"     # Configure with the necessary prefix
make
make install

5.3 Feature = WEBP Support

If you need WEBP support, use this:

cd $MSBUILD
curl -O -J -L http://downloads.webmproject.org/releases/webp/libwebp-0.4.3.tar.gz
tar xvfz libwebp*tar.gz          # Unzip and untar what you downloaded
cd libwebp*[0-9]                 # Change directory to wherever it unpacked to
./configure --prefix="$MSSW"     # Configure with the necessary prefix
make
make install

5.4 Feature = JPEG Support

If you need JPEG support, use this:

cd $MSBUILD
curl -O -J -L http://www.ijg.org/files/jpegsrc.v9a.tar.gz
tar xvfz jpeg*tar.gz                 # Unzip and untar what you downloaded
cd jpeg-9a                           # Change directory to wherever it unpacked to
./configure --prefix="$MSSW"         # Configure with the necessary prefix
make
make install

5.5 Feature - X11 or X Windows

As OSX no longer ships with an X11 server, you will need to install one yourself if you wish to use X11. Now, if you had taken my advice and used homebrew, you would be able to do:

brew cask install xquartz

and you would be finished. But you chose the Life of Agony ™ option, so you will have to figure out how to install XQuartz yourself.

6. ImageMagick itself

一旦拥有了所有要安装的功能,就可以安装ImageMagick.在这里获取您的副本,然后安装如下:

cd $MSBUILD
gunzip ImageMagick.tar.gz
tar -xvf ImageMagick.tar
cd ImageMagick-6.9.1-2       # or wherever the tar-file extracted to

现在选择你的选择.您如何知道可用的选项?你跑:

./configure --help

你会得到一系列令人生畏的选择:

`configure' configures ImageMagick 6.9.2-10 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/ImageMagick]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

X features:
  --x-includes=DIR    X include files are in DIR
  --x-libraries=DIR   X library files are in DIR

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
  --target=TARGET   configure for building compilers for TARGET [HOST]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-silent-rules   less verbose build output (undo: "make V=1")
  --disable-silent-rules  verbose build output (undo: "make V=0")
  --enable-reproducible-build
                          enable reproducible build
  --enable-dependency-tracking
                          do not reject slow dependency extractors
  --disable-dependency-tracking
                          speeds up one-time build
  --enable-ld-version-script
                          enable linker version script (default is enabled
                          when possible)
  --enable-bounds-checking
                          enable run-time bounds-checking
  --enable-osx-universal-binary
                          build universal binary on OS X [[default=no]]
  --disable-openmp        do not use OpenMP
  --enable-opencl         enable OpenCL support
  --disable-largefile     omit support for large files
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-static[=PKGS]  build static libraries [default=yes]
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --enable-delegate-build look for delegate libraries in build directory
  --disable-deprecated    exclude deprecated methods in MagickCore and
                          MagickWand APIs
  --disable-installed     Formally install ImageMagick under PREFIX
  --disable-cipher        disable enciphering and deciphering image pixels
  --enable-zero-configuration
                          enable self-contained, embeddable,
                          zero-configuration ImageMagick
  --enable-hdri           accurately represent the wide range of intensity
                          levels found in real scenes
  --disable-assert        disable assert() statements in build
  --enable-maintainer-mode
                          enable make rules and dependencies not useful (and
                          sometimes confusing) to the casual installer
  --enable-hugepages      enable 'huge pages' support
  --enable-ccmalloc       enable 'ccmalloc' memory debug support
  --enable-efence         enable 'efence' memory debug support
  --enable-prof           enable 'prof' profiling support
  --enable-gprof          enable 'gprof' profiling support
  --enable-gcov           enable 'gcov' profiling support
  --disable-assert        turn off assertions
  --disable-docs          disable building of documentation

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-dmalloc          use dmalloc, as in http://www.dmalloc.com
  --with-gcc-arch=  use architecture  for gcc -march/-mtune,
                          instead of guessing
  --includearch-dir=DIR   ARCH specific include directory
  --sharearch-dir=DIR     ARCH specific config directory
  --with-pkgconfigdir=DIR Path to the pkgconfig directory [LIBDIR/pkgconfig]
  --without-threads       disable threads support
  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                          both]
  --with-aix-soname=aix|svr4|both
                          shared library versioning (aka "SONAME") variant to
                          provide on AIX, [default=aix].
  --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
                          compiler's sysroot if not specified).
  --with-modules          enable building dynamically loadable modules
  --with-method-prefix=PREFIX
                          prefix MagickCore API methods
  --with-quantum-depth=DEPTH
                          number of bits in a pixel quantum (default 16)
  --with-cache=THRESHOLD  set pixel cache threshhold in MB (default available
                          memory)
  --with-frozenpaths      freeze delegate paths
  --without-magick-plus-plus
                          disable build/install of Magick++
  --with-package-release-name=NAME
                          encode this name into the shared library
  --with-perl             enable build/install of PerlMagick
  --with-perl-options=OPTIONS
                          options to pass on command-line when generating
                          PerlMagick build file
  --with-jemalloc         enable jemalloc memory allocation library support
  --with-umem             enable umem memory allocation library support
  --with-libstdc=DIR      use libstdc++ in DIR (for GNU C++)
  --without-bzlib         disable BZLIB support
  --with-x                use the X Window System
  --without-zlib          disable ZLIB support
  --with-apple-font-dir=DIR
                          Apple font directory
  --with-autotrace        enable autotrace support
  --without-dps           disable Display Postscript support
  --with-dejavu-font-dir=DIR
                          DejaVu font directory
  --without-fftw          disable FFTW support
  --without-fpx           disable FlashPIX support
  --without-djvu          disable DjVu support
  --without-fontconfig    disable fontconfig support
  --without-freetype      disable Freetype support
  --with-gslib            enable Ghostscript library support
  --with-fontpath=DIR     prepend to default font search path
  --with-gs-font-dir=DIR  Ghostscript font directory
  --with-gvc              enable GVC support
  --without-jbig          disable JBIG support
  --without-jpeg          disable JPEG support
  --without-lcms          disable lcms (v1.1X) support
  --without-openjp2       disable OpenJP2 support
  --without-lqr           disable Liquid Rescale support
  --without-lzma          disable LZMA support
  --without-openexr       disable OpenEXR support
  --without-pango         disable PANGO support
  --without-png           disable PNG support
  --with-rsvg             enable RSVG support
  --without-tiff          disable TIFF support
  --without-webp          disable WEBP support
  --with-windows-font-dir=DIR
                          Windows font directory
  --with-wmf              enable WMF support
  --without-xml           disable XML support

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L if you have libraries in a
              nonstandard directory 
  LIBS        libraries to pass to the linker, e.g. -l
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I if
              you have headers in a nonstandard directory 
  CPP         C preprocessor
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  PKG_CONFIG  path to pkg-config utility
  PKG_CONFIG_PATH
              directories to add to pkg-config's search path
  PKG_CONFIG_LIBDIR
              path overriding pkg-config's built-in search path
  LT_SYS_LIBRARY_PATH
              User-defined run-time library search path.
  CXXCPP      C++ preprocessor
  XMKMF       Path to xmkmf, Makefile generator for X Window System
  ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config
  ZLIB_LIBS   linker flags for ZLIB, overriding pkg-config
  AUTOTRACE_CFLAGS
              C compiler flags for AUTOTRACE, overriding pkg-config
  AUTOTRACE_LIBS
              linker flags for AUTOTRACE, overriding pkg-config
  fftw3_CFLAGS
              C compiler flags for fftw3, overriding pkg-config
  fftw3_LIBS  linker flags for fftw3, overriding pkg-config
  ddjvuapi_CFLAGS
              C compiler flags for ddjvuapi, overriding pkg-config
  ddjvuapi_LIBS
              linker flags for ddjvuapi, overriding pkg-config
  FONTCONFIG_CFLAGS
              C compiler flags for FONTCONFIG, overriding pkg-config
  FONTCONFIG_LIBS
              linker flags for FONTCONFIG, overriding pkg-config
  FREETYPE_CFLAGS
              C compiler flags for FREETYPE, overriding pkg-config
  FREETYPE_LIBS
              linker flags for FREETYPE, overriding pkg-config
  GVC_CFLAGS  C compiler flags for GVC, overriding pkg-config
  GVC_LIBS    linker flags for GVC, overriding pkg-config
  LCMS2_CFLAGS
              C compiler flags for LCMS2, overriding pkg-config
  LCMS2_LIBS  linker flags for LCMS2, overriding pkg-config
  LIBOPENJP2_CFLAGS
              C compiler flags for LIBOPENJP2, overriding pkg-config
  LIBOPENJP2_LIBS
              linker flags for LIBOPENJP2, overriding pkg-config
  LQR_CFLAGS  C compiler flags for LQR, overriding pkg-config
  LQR_LIBS    linker flags for LQR, overriding pkg-config
  LZMA_CFLAGS C compiler flags for LZMA, overriding pkg-config
  LZMA_LIBS   linker flags for LZMA, overriding pkg-config
  OPENEXR_CFLAGS
              C compiler flags for OPENEXR, overriding pkg-config
  OPENEXR_LIBS
              linker flags for OPENEXR, overriding pkg-config
  PANGO_CFLAGS
              C compiler flags for PANGO, overriding pkg-config
  PANGO_LIBS  linker flags for PANGO, overriding pkg-config
  PNG_CFLAGS  C compiler flags for PNG, overriding pkg-config
  PNG_LIBS    linker flags for PNG, overriding pkg-config
  RSVG_CFLAGS C compiler flags for RSVG, overriding pkg-config
  RSVG_LIBS   linker flags for RSVG, overriding pkg-config
  CAIRO_SVG_CFLAGS
              C compiler flags for CAIRO_SVG, overriding pkg-config
  CAIRO_SVG_LIBS
              linker flags for CAIRO_SVG, overriding pkg-config
  XML_CFLAGS  C compiler flags for XML, overriding pkg-config
  XML_LIBS    linker flags for XML, overriding pkg-config

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to .

选择选项后,使用如下所示的命令进行安装:

./configure --prefix="$MSSW" --with-modules --disable-docs --without-x --enable-hdri=yes --with-quantum-depth=16
make
make install

现在将$ MSSW/bin添加到$ HOME/.profile中的PATH.

export PATH=$HOME/sw/bin:${PATH}

然后注销并重新登录以使新PATH处于活动状态(或者在您的配置文件中点,如果您知道这意味着什么).

7.测试安装

现在测试它:

identify -version

Version: ImageMagick 6.9.2-10 Q16 x86_64 2015-12-23 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules
Delegates (built-in): bzlib cairo fontconfig freetype jng jp2 jpeg lcms ltdl lzma png rsvg tiff webp x xml zlib

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有