« October 2007 | Main | December 2007 »

November 2007

November 12, 2007

Codesta Announces New Associate Director

November 12th, 2007 - Codesta Inc is pleased to announce that Robert
Osborne has joined the company as an Associate Director. Rob joins us
as Director of Engineering to mentor and grow Codesta's software
development team.

Rob brings 20 years of software development, architecture and management
experience from industries as diverse as imaging, medical diagnostics,
web services and internet security. Recently Rob lead a team
responsible for developing an industry leading email anti-spam and
compliancy appliance.  Rob graduated from the University of Waterloo
with joint honors in Applied Math and Computer Science.

Rob lives in Toronto with his family of avid karate enthusiasts; they
are looking forward to getting their black belts in the new year.

November 08, 2007

Installing ImageMagick with FreeType, PNG, JPEG, AI and EPS Support

Often a client will request some type of image manipulation performed server side to support their application. A common example of this is the simple 'add watermark' function that you see on so many sites, but the examples can quickly get more complicated including items such as sharpen, add text, overlay images, overlay eps drawings etc...

For more complicated image manipulation applications you need to move to a larger solution than the built-in image handlers in most languages. For just such an occasion we settled on the ImageMagick library, with associated extensions. We are communicating with ImageMagick using php and the image magick libraries, but the focus of this article is the ImageMagick setup itself. Generally, we found the environment to be tricky to configure and not very well documented.

Without going into unnecessary detail about the various challenges we faced, we'd like to provide a rough guide to setting up this environment. The most significant problem solving came around how ImageMagick finds its delegates (jpeg, jasper, libpng, ghostscript). Essentially ImageMagick expects these to be found within an 'ext' directory within the build source tree, that is not created by default.

Building the system in the /tmp directory on a clean linux system (we used a fresh install of White Box Linux, Respin 1) you should be able to follow these directions:

1) "Get" your copy of ImageMagick.
>wget ftp://ftp.imagemagick.net/pub/ImageMagick/ImageMagick-6.2.9-8.tar.gz

2) Get your Delegates.
- These are add-ons that will handle various formats/functions for ImageMagick.

For jpeg support
>wget wget ftp://Ztp.imagemagick.org/pub/ImageMagick/delegates/jpegsrc.v6b.tar.gz
For jpeg2000 support
>wget wget ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/jasper-1.701.0.zip
For PNG support
>wget ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/libpng-1.2.12.tar.gz
For GhostScript eps / ai support
>wget http://www.peregrinehw.com/downloads/gd/ghostscript-8.15.tar.bz2
For GhostScript fonts support
>wget http://www.peregrinehw.com/downloads/gd/ghostscript-fonts-std-8.11.tar.gz

3) Extract all of the Delegates.
- Copy the ghostscript fonts to the default dir.
>mkdir /usr/local/share/ghostscript/fonts
>cp ./ghostscript-fonts-std-8.11/* /usr/local/share/ghostscript/fonts/

4) Make an ‘ext’ directory in ImageMagick.
>mkdir ./ImageMagick-6.2.9-8/ext

5) Copy all the delegate folders to the 'ext' directory and give them nicer names such as:
jpeg
jasper
libpng
ghostscript

6) Configure and build each of your delegates.
>cd /tmp/ImageMagick-6.2.9-8/ext/jpeg
>./configure
>build

Repeat this for each of the delegates

7) Copy the jpeg folder into the ghostscript folder.
>cd /tmp/ImageMagick-6.2.9-8/ext/ghostscript
>./configure
>build
>cd /tmp/ImageMagick-6.2.9-8/ext/jasper

>./configure
>build
>cd /tmp/ImageMagick-6.2.9-8/ext/libpng

>./configure
>build

8) Create a text file for the configuration parameters for ImageMagick
>cd /tmp/ImageMagick-6.2.9-8/
>touch myconf
>vi myconf

- Here are the contents of our configuration file, have a look and make sure it matches your environment

./configure –with-windows-font-dir=/usr/share/fonts/monotype/TrueType –enable-shared –with-exif=yes –enable-lzw=yes –with-gs-font-dir=/usr/local/share/ghostscript/fonts -without-x CPPFLAGS=’-I/tmp/ImageMagick-6.2.9/ext/jpeg -I/tmp/ImageMagick-6.2.9/ext/libpng -I/tmp/ImageMagick-6.2.9/ext/jasper’ LDFLAGS=’-L/tmp/ImageMagick-6.2.9/ext/jpeg -L/tmp/ImageMagick-6.2.9/ext/libpng -L/tmp/ImageMagick-6.2.9/ext/jasper -lfreetype’

9) Run Configure
>./myconf > configure.log

- After configuration, inspect the configure.log , with any luck it will look like this. As you can see jpeg2000 failed which was not a concern to our project, but possibly if you did a make build on jasper before configuring Imagemagick it would work.

Shared libraries  –enable-shared=yes        yes
Static libraries  –enable-static=yes        yes
Module support    –with-modules=yes        yes
GNU ld            –with-gnu-ld=yes        yes
Quantum depth     –with-quantum-depth=16    16

Delegate Configuration:

BZLIB             –with-bzlib=yes        yes
DPS               –with-dps=yes        no
FlashPIX          –with-fpx=no        no
FontConfig        –with-fontconfig=no        no
FreeType          –with-freetype=yes        yes
GhostPCL          None                pcl6 (unknown)
Ghostscript       None                gs (8.15)
Ghostscript fonts –with-gs-font-dir=/usr/local/share/ghostscript/fonts    /usr/local/share/ghostscript/fonts/
Ghostscript lib   –with-gslib=yes        no
Graphviz          –with-gvc=yes        no
JBIG              –with-jbig=yes        no
JPEG v1           –with-jpeg=yes        yes
JPEG-2000         –with-jp2=yes        no
LCMS              –with-lcms=yes        no
Magick++          –with-magick-plus-plus=yes    yes
PERL              –with-perl=yes        /usr/bin/perl
PNG               –with-png=yes        yes
RSVG              –with-rsvg=no        no
TIFF              –with-tiff=yes        no
Windows fonts     –with-windows-font-dir=/usr/share/fonts/monotype/TrueType    /usr/share/fonts/monotype/TrueType/
WMF               –with-wmf=yes        no
X11               –with-x=no            no
XML               –with-xml=yes        yes
ZLIB              –with-zlib=yes        yes

10) Now run the "make" command.
>make && make install

- NOTE - This will take a long time.

11) On a succssesful build, you should be able to run this command line

>convert -background green  -fill white -font Arial  -size 165x40  label:"Codesta.Com" ImageMagickTest.gif

- Producing This Image

Imagemagicktest



For more examples of ImageMagick Useage, check here.

Related Links

White Box Linux - http://www.whiteboxlinux.org
Image Magic - http://www.imagemagick.org  
The Image Magick delegates repository - http://ftp.fifi.org/ImageMagick/delegates/
GhostScript - http://www.peregrinehw.com/downloads/gd/ghostscript-8.15.tar.bz2
GhostScript Fonts - http://www.peregrinehw.com/downloads/gd/ghostscript-fonts-std-8.11.tar.gz
Jpeg Libraries - ftp://Ztp.imagemagick.org/pub/ImageMagick/delegates/jpegsrc.v6b.tar.gz
Jasper (Jpeg2000 libraries) - ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/jasper-1.701.0.zip
PNG Libraries - ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/libpng-1.2.12.tar.gz

-->

November 12, 2007

Codesta Announces New Associate Director

November 12th, 2007 - Codesta Inc is pleased to announce that Robert Osborne has joined the company as an Associate Director. Rob joins us as Director of Engineering to mentor and grow Codesta's software development team. Rob brings 20 years of software development, architecture and management experience from industries as diverse as imaging, medical diagnostics, web services and internet security. Recently Rob lead a team responsible for developing an industry leading email anti-spam and compliancy appliance. Rob graduated from the University of Waterloo with joint honors in Applied Math and Computer Science. Rob lives in Toronto with his family of avid karate enthusiasts; they are looking forward to getting their black belts in the new year.read more

Categories: Codesta News

November 8, 2007

Installing ImageMagick with FreeType, PNG, JPEG, AI and EPS Support

Often a client will request some type of image manipulation performed server side to support their application. A common example of this is the simple 'add watermark' function that you see on so many sites, but the examples can quickly get more complicated including items such as sharpen, add text, overlay images, overlay eps drawings etc... For more complicated image manipulation applications you need to move to a larger solution than the built-in image handlers in most languages. For just such an occasion we settled on the ImageMagick library, with associated extensions. We are communicating with ImageMagick using php and the image magick libraries, but the focus of this article is the ImageMagick setup itself. Generally, we found the environment...read more

Categories: Web/Tech

Privacy Policy| Sitemap| Contact Us

Copyright 2002-2007 Codesta LLC. All rights reserved.