使用 PHP GD/Imagick 获取/设置 DPI? [英] Get/set DPI with PHP GD/Imagick?
本文介绍了使用 PHP GD/Imagick 获取/设置 DPI?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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
Edit:
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"
}
这篇关于使用 PHP GD/Imagick 获取/设置 DPI?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文