SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【php】画像の解像度を変更する

問題

phpで画像の加工がしたい。画像の解像度(dpi)を変更したい。

php

答え

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;

関連するメモ

コメント