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

Stampede and the "Dirty" "Dark" Crowd

Actor Ajith Kumar’s recent interview has sparked quite a few conversations on social media. The part that caught my attention, was his take on crowds. About 30 years ago, when I first joined a college in Madurai after growing up in other places, I experienced a few cultural shocks. Perhaps these weren’t unique to Madurai, but that’s where I first noticed them. One major thing that stood out was the behavior of crowds. For instance, if you suddenly see people rushing to board a bus, chances are there’s a pickpocket in action. During one of Madurai's annual festivals, I noticed some young men carrying water bags — not to distribute water, but to spill it on women, often on their chests. Shockingly, this was almost normalized; parents would quietly tolerate it to avoid public embarrassment, walking a little farther behind the crowd. When some women happened to witness this, they would just shoo the boys away instead of confronting them. The crowd, in such cases, became a kind of...

Malayalis may not have valued Nedumudi Venu, but ChatGPT did

Back in the late 1980s (exactly in 1988, according to some searches)—there was a much-loved Malayalam serial called Mandan Kunju . Ever since then, our family developed a deep appreciation for Nedumudi Venu. His acting was often compared to that of Sivaji Ganesan, who was widely celebrated at the time. There were even debates about how Nedumudi was surpassing Sivaji with his unmatched natural style. Even in his 30s, Nedumudi would appear with grey hair, convincingly portraying elderly characters. About 35 years ago, I happened to watch a film in which Nedumudi Venu actually played the lead role—something quite rare in his career. I couldn’t remember the plot or the supporting cast, but what stayed with me vividly was the setting. The film had been shot in Munnar’s Madupetty Estate, with the estate school serving as one of the locations. I also remembered a Carnatic-influenced song filmed outdoors in the estate, which left a strong impression on me. For years, I tried to rediscover ...

.fig extension used by Figma software - source of confusion

Recently one of our customers sent design files in fig format (with .fig extension). As .fig is an extension used by famous old Linux design tool Xfig , we tried to open in it and were getting errors. And then the designer came to rescue and informed about the online tool Figma . Figma provides easy prototyping options for lazy aka productive designers. In my opinion, it is somewhat comparable to Pingendo . It is more of an online tool developed in JavaScript. They also provide desktop version / downloadable software. I'd thought that its performance will be better in desktop tool, but noted that it is only an Electron app.