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

Valen Smith, the English teacher videos are missing!

I vaguely remembered that sometimes around 2009, engVid on YouTube was very popular. I especially liked a teacher by name Valen Smith's videos. She was not only beautiful but also very good at explaining the English usage. I also vaguely remembered to check her channel ValenESL around 2015. But, not sure what happened to her or engVid, all her videos are sadly gone. I have also noted that many people on Twitter were asking the same. Not sure what happened. Some people seem to have reuploaded her videos and YouTube continuously removing them with a note "This video contains content from LearnVid, who has blocked it on copyright grounds." Strangely though, on Facebook, some people have managed to create a fake account using her old channel name ValenESL.

htmlspecialchars() bug in blogger.com

Found a strange htmlspecialchars() bug in blogger.com The title of my blog is <?php echo 'R. Rajesh Jeba Anbiah'; ?> , but blogger.com doesn't convert the html entities in the title when it spits out. Because of this bug, the title doesn't appear in my blog--browser just treats it as a broken html tag. This bug could have been fixed by using htmlspecialchars() , if it's powered by PHP . Also, noticed that this compose box eats any texts entered such. I gonna report this bug.

The American College, Madurai - Famous alumni

I'm trying to constantly update this list. It should have been titled "remarkable" or "notable"--instead of "famous". Prof. Kalyani - Social Activist ( link ) Mahendran (birth name: Alexander) - 54PUC?? - film director of Mullum malarum, etc Prof. Solomon Pappiah - 53TAM?? ( link ) Dr. R. ​Prabhakar Vedamanickam - 80ECO?? - Professor, Music Director, Font Creator, known for creativity M. Vallalar IAS - 84ENG?? - Collector of Dindigul District Bala - 83TAM?? - film director of Sethu, etc Vivek (birth name: Vivekanathan) - 78COM59 - comedy actor Ramki - 78?? - actor Thota Tharrani - 64PUC?? - art director Shihan Hussaini - 84ZOO?? - Karate expert and actor Karu. Palaniappan - 90ENG?? - film director of Partiban Kanavu, etc Ram (birth name: Rama Subbu) - 93TAM?? - film director of Katrathu Tamil, etc Shanmugharajan - 99TAM?? - actor (acted in Virumandi, etc Jacob Sahaya Kumar Aruni - 93PHY?? - Chef and VJ