Solved

TIFF Support in PHP

Posted on 2002-05-10
12
3,394 Views
Last Modified: 2012-06-22
I am looking to read in a TIFF image and serve up a section of it as a GIF,JPG, or PNG to the browser.  I have gd setup and working but need to know if TIFF is supported (It doesn't seem to be).  If it isn't what external packages can I add in?  I have looked at ImageMagick, but I seem to need to run it from Exec() or PassThru() which don't work well for Windows.  My environment is Windows 2000 Server, Apache 1.3, and PHP 4.2

Thanks,

Matt
0
Comment
Question by:MatthewL
  • 6
  • 5
12 Comments
 
LVL 4

Expert Comment

by:lokeshv
Comment Utility
check this ..

http://www.phpbuilder.com/columns/rasmus19990124.php3


Hope it helps...

Lk
0
 
LVL 1

Author Comment

by:MatthewL
Comment Utility
Hi lokeshv,

Thanks for the link ... I must be misunderstanding it though.  It appears to be about generating TTF's.  Am I missing something?

Matt
0
 
LVL 32

Expert Comment

by:Batalf
Comment Utility
I have used imagemagick for windows

exec("convert originalImage.tif copy.gif");

Then you have a copy of "originalImage.tif" stored in "copy.gif"
0
 
LVL 32

Expert Comment

by:Batalf
Comment Utility
But maybe you need the path to "convert.exe" on windows-platform.

Try to use relative path to convert.exe

exec("../relativePath/convert originalImage.tif copy.gif");
0
 
LVL 1

Author Comment

by:MatthewL
Comment Utility
Hi Batalf,

I have been successful using exec() and passthru() on some simple programs (e.g. passthru("net view")), but haven't been successful in launching a more involved program.  ImageMagick would be a good solution if I can get it to work.  What did you need to setup on your system?  Do you know how to get convert() to give me a slice of the image?

Thanks,

Matt




0
 
LVL 32

Expert Comment

by:Batalf
Comment Utility
On windows, I just installed the binary software from ftp://ftp.nluug.nl/pub/ImageMagick/binaries/ . Then I executed exec("../relativePath/convert.exe...") on it. But remember to use relative path to convert.exe.

To crop the image(get a slice of it), you could use the parameter -crop

For more information about crop, look at

http://www.imagemagick.org/www/convert.html

If you're willing to pay for the software, Alchemy Software from www.handmadesw.com is probably even better than ImageMagick. It's faster and supports more image-formats. But: ImageMagick is also good!

Batalf

0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 1

Author Comment

by:MatthewL
Comment Utility
Hi Batalif,

I will try ImageMagick again.  I also did a quick check on Alchemy, but they want $2.5K for the server license, which seems a little steep to me.  Have you noticed any runtime lags with ImageMagick that would move me toward a solution like Alchemy?

Matt
0
 
LVL 32

Accepted Solution

by:
Batalf earned 200 total points
Comment Utility
The reason to use Alchemy instead of ImageMagick are:

* Alchemy process imageconvertion faster than ImageMagick.
* ImageMagick seems to have problems with some image-formats. We experienced some problems converting eps-files created in a program called "Freehand". The problem was some font files which wasn't a part of the ImageMagick software. When we installed Alchemy, convertion of eps from freehand worked in both Alchemy and Freehand.

I think that ImageMagick is a good choice if you're not dealing with very large images, like eps-images on 20-30 MB.

Batalf
0
 
LVL 1

Author Comment

by:MatthewL
Comment Utility
Hi Batallf,

Sounds like I might end up going to Alchemy (my files are 1-2G).  I think I will start with ImageMagick and prove that the run time is unacceptable first.  I am thinking this way as the slices will be small, and the large images can sit in memory on the server.  I notice in your profile you have a Java background.  Is there a PHP equivalent to EJBs?  I am thinking perhaps DCOM, but don't want to miss an obvious choice.

Thanks,

Matt

I have also been looking at ImageMagick and it appears that convert() will not allow me to pipe.  Is that correct?
(I want to avoid file creation).
0
 
LVL 32

Expert Comment

by:Batalf
Comment Utility
There has been a while since I worked with Java, I don't think php have anything like javas EJB(Enterprise Java Beans).

But I know that ImageMagick has become a part of the php-library "pear" (http://pear.php.net). So that could be a choice. ( I haven't used pear yet though).

About pipe:
What do you mean by that you want to avoid file creation? When you use ImageMagick or Alchemy, the converted file has to be stored into a file. Please explain if I'm way of.



0
 
LVL 1

Author Comment

by:MatthewL
Comment Utility
Hi Batalf,

I thought the EJB question would be worth a try.  You have long before earned your points however.  I will look into pear.

By pipe I mean I want take the stdout of one program and use it as the stdin of the next.

e.g. I have the following in an old solution.  

ImageStream.exe -bunchOParams -targa $file | cjpeg.exe -targa

An image is streamed in targa format to stdin of cjpeg which then converts to a jpeg for me and it's stdout goes directly to my browser.

I would like to do a simular solution with convert, but it doesn't seem to support it.  If you know of source code for convert I could hack it though.

P.S. what is a eps file? (just curious)

thanks,

Matt
0
 
LVL 32

Expert Comment

by:Batalf
Comment Utility
Thanks for the points.

Eps = "Encapsulated PostScript" = Postscript-image.
0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

Popularity Can Be Measured Sometimes we deal with questions of popularity, and we need a way to collect opinions from our clients.  This article shows a simple teaching example of how we might elect a favorite color by letting our clients vote for …
Part of the Global Positioning System A geocode (https://developers.google.com/maps/documentation/geocoding/) is the major subset of a GPS coordinate (http://en.wikipedia.org/wiki/Global_Positioning_System), the other parts being the altitude and t…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to dynamically set the form action using jQuery.

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now