Skip to main content

Converting PSD with PHP/ImageMagick

After seeing feature rich options in Imagick PECL extension at Mikko Koppanen's (the author) website and also impressed with ImageMagick's features, I have decided to use it for the PSD to XHTML conversion website that I'm architecting and managing.

Since, the team wants programming help for converting PSD images, I have tried it (documentation is sparse on PSD handling)

Converting PSD to PNG/JPEG/etc


Note that, flattenImages() is needed for layered/multi-page PSD file.


<?php
$im = new Imagick('test.psd');
$im->flattenImages();
$im->setImageFormat('png');
$im->writeImage('test.png');
?>



Extracting PSD layers


One by one



<?php
$im = new Imagick('test.psd');
$im->setImageFormat('png');
for ($i = 0, $num_layers = $im->getNumberImages(); $i < $num_layers; ++$i) {
$im->setImageIndex($i);
$im->writeImage('layer' . $i . '.png');
}
?>


Note that, there is a better version below

In a single call with writeImages()



<?php
$im = new Imagick('test.psd');
$im->setImageFormat('png');
$im->writeImages('layer%d.png', true);
?>


Note: Second parameter of writeImages() is for adjoin

Bug

While doing so and comparing with the results of XnView, I have noted a same problem/issue as mentioned here in the forum--that is, most of the extracted layers/images are distorted. By the way, I have tried in WAMP and yet to try it in LAMP

Comments

Rinto Geroge said…
Great work Rajesh ,Thanks anyway
Rinto said…
Rajesh,I am experiencing some problem while exporting psd to png ,looses the resolution .Actually I converted 500 dpi psd to png ,but got 72 dpi png .How can keep the resolution ?
Rinto:

After second thought, you'd be better off with the command line "convert" instead of this extension

Popular posts from this blog

Using Sodexo Meal Pass Card in BigBasket.com - How-to

How to Use Sodexo Meal Pass Card in Bigbasket.com Sodexo started to issue Smart Card similar to Credit Card--instead of their usual paper based vouchers. I was using Sodexo vouchers for longtime, but it was a big letdown when I can't get some of my unused vouchers renewed. And so, I was somehow happy with their new Meal Pass Card. But, again, it was a big letdown as I can't use it with BigBasket--where I usually use most of my meal coupon vouchers. SMS message from Sodexo on December 20, 2017 1:18 PM came as a big surprise, as I was waiting for this for longtime: Great News! Pay with your Sodexo Meal Card for food items ordered from Big Basket. Choose Sodexo in the payment section & pay on delivery. And so, this month, I tried to use my Sodexo Meal Pass Card in BigBasket. BigBasket website had not much information; I thought that I have to swipe my Meal Pass Card. Delivery person also didn't have much information; initially he was rejecting my Card! I trie...

"Fire MBAs" - Bob Lutz, former GM Vice Chairman

Personally, I don't value MBA degree (even though I have met and had very knowledgeable friends at college). For me, it's a hyped and useless degree. Most of the MBAs I have seen are pure Juggu Boys (sycophants) and irrational cabals, who can't take any decision on their own, but can only create chaos and politics. That's one of the reasons I like Paul Graham of Y-Combinator . He's a great icon for Hackers (to get back the respect). I just stumbled upon this link through Hacker News where TIME magazine reports on Bob Lutz's latest book Car Guys vs. Bean Counters: The Battle for the Soul of American Business . Some interesting notes: we need to fire the M.B.A.s and let engineers run the show. "if you can measure it, you can manage it" The only time Apple ever lost the plot was when it put the M.B.A.s in charge.  "Shoemakers should be run by shoe guys, and software firms by software guys."