Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how can i change the dpi of an image with the imagick extension

Tags:

php

dpi

imagick

I need to change all uploaded files to 72 dpi. I'm using the php imagick extension.

heres what i've tried (the image i'm using is 300dpi):

$image = new Imagick();
$image->setResolution(72,72) ;
$image->readImage($img);
$image->resampleImage  (72,72,imagick::FILTER_UNDEFINED,1);
$image->writeImage($target)

this doesn't seem to anything. the image is uploading, but stays at 300dpi

like image 661
mononym Avatar asked Oct 11 '10 15:10

mononym


1 Answers

MatTheCat's answer is spot on. You might also try setImageUnits() to ensure it's working with inches and not centimeters.

$image->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$image->setImageResolution(72,72);

Resampling isn't necessary just to change dpi.

Note that changing the dpi alone will not affect file size and only applies to resampling and printing.

like image 181
Isius Avatar answered Sep 30 '22 02:09

Isius