【php】画像の解像度を変更する
問題
phpで画像の加工がしたい。画像の解像度(dpi)を変更したい。
答え
Imagick::setImageResolution でできるようだ。
似たものに Imagick::setResolution もあるので、紛らわしい。
出力するところも含めるとコードはこんな感じ。
header('Content-Type: image/jpeg'); $im = new Imagick(); $im->readImage('test.jpg'); $im->setImageResolution(72, 72); // 72dpiに $im->setImageFormat("jpg"); echo $im;
pngは事情が特殊で、dpiで解像度を持っていなくて端数が出るとかで、あえて0を指定すると指定なし、単位なし → フォトショップ等では72dpi扱い としてもらえたりする。
header('Content-Type: image/png'); $im = new Imagick(); $im->readImage($blob); $im->setImageResolution(0, 0); //指定なし → 72 Undefined $im->setImageFormat("png"); echo $im;
コメント