I'm building a Web application that will handle image files that will ultimately be printed, large format.
As part of this, I need to get (i.e. read) and set (i.e. change) the DPI of an image file.
Is this possible through PHP GD or PHP Imagick?
Thanks,
BK
The DPI of a image can be accessed through iMagick's getImageResolution
method:
public function getDPI() {
$imgDPI = $this->image->getImageResolution();
return $imgDPI;
}
and the DPI of an image can be set through iMagick's setImageResolution
method:
public function setDPI($DPIX, $DPIY) {
$this->image->setImageResolution($DPIX,$DPIY);
}
in order to use "getImageResolution();" you must be sure that resolution in "PixelsPerInch"...sometimes it can be "PixelsPerCentimeter"
use following code to get image info:
$imagick = new Imagick($filename);
$data = $imagick->identifyimage();
var_dump($data);
result (when PixelsPerInch):
array(11) {
["imageName"]=> string(11) "/jpg300.jpg"
["format"]=> string(51) "JPEG (Joint Photographic Experts Group JFIF format)"
["units"]=> string(13) "PixelsPerInch"
["type"]=> string(9) "TrueColor"
["colorSpace"]=> string(3) "RGB"
["compression"] => string(4) "JPEG"
["fileSize"] => string(6) "8.72mb"
["mimetype"] => string(10) "image/jpeg"
["geometry"] => array(2) {
["width"] => int(11812)
["height"] => int(7876)
}
["resolution"]=> array(2) {
["x"]=> float(300)
["y"]=> float(300)
}
["signature"]=> string(64) "7fc387ea465ec716e9fd6e233bb1d3740cb509f5667ed2a4df0199e6e664590e"
}
or (when PixelsPerCentimeter):
array(11) {
["imageName"]=> string(8) "/psm.jpg"
["format"]=> string(51) "JPEG (Joint Photographic Experts Group JFIF format)"
["units"]=> string(19) "PixelsPerCentimeter"
["type"]=> string(9) "TrueColor"
["colorSpace"]=> string(3) "RGB"
["compression"]=> string(4) "JPEG"
["fileSize"]=> string(7) "25.01mb"
["mimetype"]=> string(10) "image/jpeg"
["geometry"]=>
array(2) {
["width"]=> int(11812)
["height"]=> int(7876)
}
["resolution"]=>
array(2) {
["x"]=> float(118.11)
["y"]=> float(118.11)
}
["signature"]=> string(64) "b491e059624e79a4dee62d9cc7646019927b2222bfed9ac8dd4342185e648eaf"
}